mirror of https://github.com/python/cpython
bf2e7e55d7
In the case of multiprocessing.synchronize() being missing, the test_concurrent_futures test suite now skips only the tests that require multiprocessing.synchronize(). Validate that multiprocessing.synchronize exists as part of _check_system_limits(), allowing ProcessPoolExecutor to raise NotImplementedError during __init__, rather than crashing with ImportError during __init__ when creating a lock imported from multiprocessing.synchronize. Use _check_system_limits() to disable tests of ProcessPoolExecutor on systems without multiprocessing.synchronize. Running the test suite without multiprocessing.synchronize reveals that Lib/compileall.py crashes when it uses a ProcessPoolExecutor. Therefore, change Lib/compileall.py to call _check_system_limits() before creating the ProcessPoolExecutor. Note that both Lib/compileall.py and Lib/test/test_compileall.py were attempting to sanity-check ProcessPoolExecutor by expecting ImportError. In multiprocessing.resource_tracker, sem_unlink() is also absent on platforms where POSIX semaphores aren't available. Avoid using sem_unlink() if it, too, does not exist. Co-authored-by: Pablo Galindo <Pablogsal@gmail.com> |
||
---|---|---|
.. | ||
dummy | ||
__init__.py | ||
connection.py | ||
context.py | ||
forkserver.py | ||
heap.py | ||
managers.py | ||
pool.py | ||
popen_fork.py | ||
popen_forkserver.py | ||
popen_spawn_posix.py | ||
popen_spawn_win32.py | ||
process.py | ||
queues.py | ||
reduction.py | ||
resource_sharer.py | ||
resource_tracker.py | ||
shared_memory.py | ||
sharedctypes.py | ||
spawn.py | ||
synchronize.py | ||
util.py |