mirror of
https://github.com/python/cpython.git
synced 2025-10-28 01:00:34 +00:00
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 | ||