Пример #1
0
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
Пример #2
0
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)