def test_nthreads(): from datatable.internal import get_thread_ids nthreads0 = dt.options.nthreads curr_threads = get_thread_ids() assert len(curr_threads) == nthreads0 for n in [4, 1, nthreads0 + 10, nthreads0]: dt.options.nthreads = n new_threads = get_thread_ids() assert len(new_threads) == n m = min(len(curr_threads), len(new_threads)) assert curr_threads[:m] == new_threads[:m] curr_threads = new_threads assert dt.options.nthreads == nthreads0
def test_multiprocessing_threadpool(): # Verify that threads work properly after forking (#1758) import multiprocessing as mp from datatable.internal import get_thread_ids parent_threads = get_thread_ids() n = 4 with mp.Pool(processes=n) as pool: child_threads = pool.starmap(get_thread_ids, [()] * n, chunksize=1) assert len(child_threads) == n for chthreads in child_threads: assert len(parent_threads) == len(chthreads)