summaryrefslogtreecommitdiffstats
path: root/Lib/multiprocessing
Commit message (Collapse)AuthorAgeFilesLines
* bpo-32576: use queue.SimpleQueue in critical places (#5216)Antoine Pitrou2018-01-181-8/+11
| | | | Where a queue may be invoked from a weakref callback, we need to use the reentrant SimpleQueue.
* bpo-31699 Deadlocks in `concurrent.futures.ProcessPoolExecutor` with ↵Thomas Moreau2018-01-051-5/+16
| | | | | | pickling error (#3895) Fix deadlocks in :class:`concurrent.futures.ProcessPoolExecutor` when task arguments or results cause pickling or unpickling errors. This should make sure that calls to the :class:`ProcessPoolExecutor` API always eventually return.
* bpo-32157: Removed explicit quotes around %r and {!r}. (#4582)Serhiy Storchaka2017-11-281-2/+2
|
* bpo-31310: multiprocessing's semaphore tracker should be launched again if ↵Antoine Pitrou2017-11-031-3/+17
| | | | | | | | | | | crashed (#3247) * bpo-31310: multiprocessing's semaphore tracker should be launched again if crashed * Avoid mucking with process state in test. Add a warning if the semaphore process died, as semaphores may then be leaked. * Add NEWS entry
* bpo-31308: If multiprocessing's forkserver dies, launch it again when ↵Antoine Pitrou2017-11-031-5/+16
| | | | | | | | | | | | | | | | | | | | | | necessary (#3246) * bpo-31308: If multiprocessing's forkserver dies, launch it again when necessary. * Fix test on Windows * Add NEWS entry * Adopt a different approach: ignore SIGINT and SIGTERM, as in semaphore tracker. * Fix comment * Make sure the test doesn't muck with process state * Also test previously-started processes * Update 2017-08-30-17-59-36.bpo-31308.KbexyC.rst * Avoid masking SIGTERM in forkserver. It's not necessary and causes a race condition in test_many_processes.
* bpo-28326: Fix multiprocessing.Process when stdout and/or stderr is closed ↵Antoine Pitrou2017-10-221-2/+8
| | | | or None. (#4073)
* [Trivial] Remove now redundant assert (#3245)Antoine Pitrou2017-08-301-1/+0
|
* bpo-5001: More-informative multiprocessing error messages (#3079)Allen W. Smith, Ph.D2017-08-2914-39/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make error message more informative Replace assertions in error-reporting code with more-informative version that doesn't cause confusion over where and what the error is. * Additional clarification + get travis to check * Change from SystemError to TypeError As suggested in PR comment by @pitrou, changing from SystemError; TypeError appears appropriate. * NEWS file installation; ACKS addition (will do my best to justify it by additional work) * Making current AssertionErrors in multiprocessing more informative * Blurb added re multiprocessing managers.py, queues.py cleanup * Further multiprocessing cleanup - went through pool.py * Fix two asserts in multiprocessing/util.py * Most asserts in multiprocessing more informative * Didn't save right version * Further work on multiprocessing error messages * Correct typo * Correct typo v2 * Blasted colon... serves me right for trying to work on two things at once * Simplify NEWS entry * Update 2017-08-18-17-16-38.bpo-5001.gwnthq.rst * Update 2017-08-18-17-16-38.bpo-5001.gwnthq.rst OK, never mind. * Corrected (thanks to pitrou) error messages for notify * Remove extraneous backslash in docstring.
* bpo-18966: non-daemonic threads created by a multiprocessing.Process should ↵Antoine Pitrou2017-08-161-0/+2
| | | | | | | | be joined on exit (#3111) * bpo-18966: non-daemonic threads created by a multiprocessing.Process should be joined on exit * Add NEWS blurb
* bpo-5001, bpo-31169: Fix two uninformative asserts in ↵Allen W. Smith, Ph.D2017-08-121-7/+10
| | | | | | | | | | | | | | | | multiprocessing/managers.py (#3078) * Make error message more informative Replace assertions in error-reporting code with more-informative version that doesn't cause confusion over where and what the error is. * Additional clarification + get travis to check * Change from SystemError to TypeError As suggested in PR comment by @pitrou, changing from SystemError; TypeError appears appropriate. * NEWS file installation; ACKS addition (will do my best to justify it by additional work)
* bpo-31019: Fix multiprocessing.Process.is_alive() (#2875)Victor Stinner2017-07-261-2/+8
| | | | | | multiprocessing.Process.is_alive() now removes the process from the _children set if the process completed. The change prevents leaking "dangling" processes.
* bpo-30919: shared memory allocation performance regression in ↵Antoine Pitrou2017-07-231-10/+16
| | | | | | | | | | multiprocessing (#2708) * Fix #30919: shared memory allocation performance regression in multiprocessing * Change strategy for Arena directory choice * Add blurb
* bpo-26732: fix too many fds in processes started with the "forkserver" ↵Antoine Pitrou2017-07-221-1/+4
| | | | | | | | | | method (#2813) * bpo-26732: fix too many fds in processes started with the "forkserver" method A child process would inherit as many fds as the number of still-running children. * Add blurb and test comment
* bpo-19896: Add typecodes 'q' and 'Q' to multiprocessing.sharedctypes (#2741)Gareth Rees2017-07-211-6/+7
| | | | | | | | | | * bpo-19896: Add typcodes 'q' and 'Q' to multiprocessing.sharedctypes. Patch by Antony Lee. * Add NEWS entry. * Slightly tweak NEWS entry Make it clear this is more of a fix rather than a new feature.
* bpo-30794: added kill() method to multiprocessing.Process (#2528)Vitor Pereira2017-07-183-2/+17
| | | | | | | | | | | | | | * bpo-30794: added kill() method to multiprocessing.Process * Added entries to documentation and NEWS * Refactored test_terminate and test_kill * Fix SIGTERM and SIGKILL being used on Windows for the tests * Added "versionadded" marker to the documentation * Fix trailing whitespace in doc
* bpo-30886: Fix multiprocessing.Queue.join_thread() (#2642)Victor Stinner2017-07-101-8/+1
| | | | | | | | | | multiprocessing.Queue.join_thread() now waits until the thread completes, even if the thread was started by the same process which created the queue. Fix the following warning which occurs randomly when running test_handle_called_with_mp_queue of test_logging.QueueListenerTest: Warning -- threading_cleanup() failed to cleanup -1 threads after 4 sec (count: 0, dangling: 1)
* bpo-29293: multiprocessing.Condition.notify() lacks parameter `n` (#2480)Antoine Pitrou2017-07-042-21/+7
| | | | | | * bpo-29293: multiprocessing.Condition.notify() lacks parameter `n` * Add NEWS blurb
* Clear potential ref cycle between Process and Process target (#2470)Antoine Pitrou2017-06-281-0/+3
| | | | | | | | | * Clear potential ref cycle between Process and Process target Besides Process.join() not being called, this was an indirect cause of bpo-30775. The threading module already does this. * Add issue reference
* Fix bpo-30596: Add close() method to multiprocessing.Process (#2010)Antoine Pitrou2017-06-246-8/+59
| | | | | | | | | | * Fix bpo-30596: Add close() method to multiprocessing.Process * Raise ValueError if close() is called before the Process is finished running * Add docs * Add NEWS blurb
* bpo-24484: Avoid race condition in multiprocessing cleanup (#2159)Antoine Pitrou2017-06-131-13/+21
| | | | | | | | | | | * bpo-24484: Avoid race condition in multiprocessing cleanup The finalizer registry can be mutated while inspected by multiprocessing at process exit. * Use test.support.start_threads() * Add Misc/NEWS
* bpo-30643: Fix race condition in signal wakeup in forkserver (followup to PR ↵Antoine Pitrou2017-06-131-4/+8
| | | | | | | | | | | | | #1989) (#2139) * Fix race condition in signal wakeup in forkserver (followup to PR #1989) There's an admittedly well-known race condition where ECHILD can arrive just before the C function epoll_wait() and the latter wouldn't therefore return EINTR. The solution is to use set_wakeup_fd(), which was designed to avoid such race conditions. * Reset wakeup fd in child
* Fix bpo-30589: improve Process.exitcode with forkserver (#1989)Antoine Pitrou2017-06-123-47/+97
| | | | | | | | * Fix bpo-30589: improve Process.exitcode with forkserver When the child is killed, Process.exitcode should return -signum, not 255. * Add Misc/NEWS
* bpo-30595: Fix multiprocessing.Queue.get(timeout) (#2027)Victor Stinner2017-06-101-1/+1
| | | | | | | multiprocessing.Queue.get() with a timeout now polls its reader in non-blocking mode if it succeeded to aquire the lock but the acquire took longer than the timeout. Co-Authored-By: Grzegorz Grzywacz <grzgrzgrz3@gmail.com>
* bpo-16500: Allow registering at-fork handlers (#1715)Antoine Pitrou2017-05-272-8/+0
| | | | | | | | | | | | * bpo-16500: Allow registering at-fork handlers * Address Serhiy's comments * Add doc for new C API * Add doc for new Python-facing function * Add NEWS entry + doc nit
* bpo-30414: multiprocessing.Queue._feed do not break from main loop on exc ↵grzgrzgrz32017-05-251-12/+10
| | | | | | | | | | | | | | | | | | (#1683) * bpo-30414: multiprocesing.Queue._feed do not break from main loop on exc Queue background running thread was not handling exceptions correctly. Any exception occurred inside thread (putting unpickable object) cause feeder to finish running. After that every message put into queue is silently ignored. * bpo-30414: multiprocesing.Queue._feed do not break from main loop on exc Queue background running thread was not handling exceptions correctly. Any exception occurred inside thread (putting unpickable object) cause feeder to finish running. After that every message put into queue is silently ignored.
* bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489)Jon Dufresne2017-05-183-4/+3
| | | | | | | | * Replaced list(<generator expression>) with list comprehension * Replaced dict(<generator expression>) with dict comprehension * Replaced set(<list literal>) with set literal * Replaced builtin func(<list comprehension>) with func(<generator expression>) when supported (e.g. any(), all(), tuple(), min(), & max())
* bpo-30301: Fix AttributeError when using SimpleQueue.empty() (#1601)Xiang Zhang2017-05-171-0/+1
| | | | | Under *spawn* and *forkserver* start methods, SimpleQueue.empty() could raise AttributeError due to not setting _poll in __setstate__.
* bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver (#1319)Antoine Pitrou2017-05-041-6/+14
| | | | | | * bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver * Tweak comment
* bpo-30065: Fixed arguments validation in _posixsubprocess.fork_exec(). (#1110)Serhiy Storchaka2017-04-191-1/+1
|
* bpo-29762: More use "raise from None". (#569)Serhiy Storchaka2017-04-053-5/+5
| | | This hides unwanted implementation details from tracebacks.
* bpo-28699: fix abnormal behaviour of pools in multiprocessing.pool (GH-693)Xiang Zhang2017-03-291-24/+55
| | | | | an exception raised at the very first of an iterable would cause pools behave abnormally (swallow the exception or hang)
* bpo-29919: Remove unused imports found by pyflakes (#137)Victor Stinner2017-03-271-1/+1
| | | Make also minor PEP8 coding style fixes on modified imports.
* bpo-29861: release references to multiprocessing Pool tasks (#743)Antoine Pitrou2017-03-241-1/+6
| | | | | | | | | | * bpo-29861: release references to multiprocessing Pool tasks Release references to tasks, their arguments and their results as soon as they are finished, instead of keeping them alive until another task arrives. * Comments in test
* bpo-29776: Use decorator syntax for properties. (#585)Serhiy Storchaka2017-03-194-7/+20
|
* Issue #28779: multiprocessing.set_forkserver_preload() would crash the ↵Antoine Pitrou2016-12-102-2/+2
|\ | | | | | | forkserver process if a preloaded module instantiated some multiprocessing objects such as locks.
| * Issue #28779: multiprocessing.set_forkserver_preload() would crash the ↵Antoine Pitrou2016-12-102-2/+2
| | | | | | | | forkserver process if a preloaded module instantiated some multiprocessing objects such as locks.
* | Issue #28053: Applying refactorings, docs and other cleanup to follow.Davin Potts2016-09-0913-40/+77
| |
* | Issue #21201: Improves readability of multiprocessing error message from ↵Davin Potts2016-09-081-1/+1
|\ \ | |/ | | | | server to client for certain exceptions
| * Issue #21201: Improves readability of multiprocessing error message from ↵Davin Potts2016-09-081-1/+1
| | | | | | | | server to client for certain exceptions
* | Fixes issue #6766: Updated multiprocessing Proxy Objects to support nestingDavin Potts2016-09-071-25/+70
| |
* | Issue #26778: Fixed "a/an/and" typos in code comment, documentation and errorSerhiy Storchaka2016-04-171-1/+1
|\ \ | |/ | | | | messages.
| * Issue #26778: Fixed "a/an/and" typos in code comment and documentation.Serhiy Storchaka2016-04-171-1/+1
| |
| * Issue #25654:Victor Stinner2016-03-253-13/+25
| | | | | | | | | | | | | | | | | | * multiprocessing: open file with closefd=False to avoid ResourceWarning * _test_multiprocessing: open file with O_EXCL to detect bugs in tests (if a previous test forgot to remove TESTFN) * test_sys_exit(): remove TESTFN after each loop iteration Initial patch written by Serhiy Storchaka.
* | Issue #25654:Victor Stinner2016-03-253-13/+25
| | | | | | | | | | | | | | | | | | * multiprocessing: open file with closefd=False to avoid ResourceWarning * _test_multiprocessing: open file with O_EXCL to detect bugs in tests (if a previous test forgot to remove TESTFN) * test_sys_exit(): remove TESTFN after each loop iteration Initial patch written by Serhiy Storchaka.
* | Issue #23992: multiprocessing: make MapResult not fail-fast upon exception.Charles-François Natali2016-02-101-8/+12
|/
* Fix typo in docstring of multiprocessing.spawn.spawn_main()Berker Peksag2016-01-071-1/+1
|
* Issue #25899: Converted non-ASCII characters in docstrings and manpageSerhiy Storchaka2015-12-181-1/+1
| | | | to ASCII replacements. Original patch by Chris Angelico.
* Issue #21116: Avoid blowing memory when allocating a multiprocessing sharedAntoine Pitrou2015-04-131-1/+8
| | | | | | array that's larger than 50% of the available RAM. Patch by Médéric Boquien.
* Issue #23865: close() methods in multiple modules now are idempotent and moreSerhiy Storchaka2015-04-102-8/+17
|\ | | | | | | | | robust at shutdown. If needs to release multiple resources, they are released even if errors are occured.
| * Issue #23865: close() methods in multiple modules now are idempotent and moreSerhiy Storchaka2015-04-102-8/+17
| | | | | | | | | | robust at shutdown. If needs to release multiple resources, they are released even if errors are occured.