def multiprocess_call()

in src/utils/util.py [0:0]


def multiprocess_call(func, input_list, kwarg_list=None, num_threads=8):
    from multiprocessing import Pool

    pool = Pool(num_threads)
    results = []
    if not kwarg_list:
        kwarg_list = [{}] * len(input_list)
    for inp, kwargs in zip(input_list, kwarg_list):
        results.append(pool.apply_async(func, inp, kwargs))
    pool.close()
    pool.join()

    return [res.get() for res in results]