bpo-35479: Optimize multiprocessing.Pool.join() by vstinner · Pull Request #11136 · python/cpython

The multiprocessing.Pool.join() method now completes as soon as
possible. Previously, it always had to wait at least 100 ms.

multiprocessing.Pool._worker_handler() now waits on threading events
rather than using naive time.sleep(0.1).

When the pool is closed, a delay of 100 ms is still needed because of
bpo-35478 bug (pending results never complete if the pool is
terminated) to check if thread._state has been set to TERMINATE in
the meanwhile.

https://bugs.python.org/issue35479