Allen W. Smith, Ph.D
48d9823a0e
bpo-5001, bpo-31169: Fix two uninformative asserts in 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)
2017-08-12 17:37:09 +02:00
Victor Stinner
2db64823c2
bpo-31019: Fix multiprocessing.Process.is_alive() ( #2875 )
...
multiprocessing.Process.is_alive() now removes the process from the
_children set if the process completed.
The change prevents leaking "dangling" processes.
2017-07-26 02:32:42 +02:00
Antoine Pitrou
3051f0b78e
bpo-30919: shared memory allocation performance regression in multiprocessing ( #2708 )
...
* Fix #30919 : shared memory allocation performance regression in multiprocessing
* Change strategy for Arena directory choice
* Add blurb
2017-07-23 13:05:26 +02:00
Antoine Pitrou
896145d9d2
bpo-26732: fix too many fds in processes started with the "forkserver" 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
2017-07-22 13:22:54 +02:00
Gareth Rees
3913bad495
bpo-19896: Add typecodes 'q' and 'Q' to multiprocessing.sharedctypes ( #2741 )
...
* 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.
2017-07-21 12:35:33 +02:00
Vitor Pereira
ba75af7130
bpo-30794: added kill() method to multiprocessing.Process ( #2528 )
...
* 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
2017-07-18 17:34:23 +02:00
Victor Stinner
3b69d911c5
bpo-30886: Fix multiprocessing.Queue.join_thread() ( #2642 )
...
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)
2017-07-10 12:45:21 +02:00
Antoine Pitrou
48350412b7
bpo-29293: multiprocessing.Condition.notify() lacks parameter `n` ( #2480 )
...
* bpo-29293: multiprocessing.Condition.notify() lacks parameter `n`
* Add NEWS blurb
2017-07-04 08:59:22 +02:00
Antoine Pitrou
79d37ae979
Clear potential ref cycle between Process and Process target ( #2470 )
...
* 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
2017-06-28 12:29:08 +02:00
Antoine Pitrou
13e96cc596
Fix bpo-30596: Add close() method to multiprocessing.Process ( #2010 )
...
* 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
2017-06-24 19:22:23 +02:00
Antoine Pitrou
1eb6c0074d
bpo-24484: Avoid race condition in multiprocessing cleanup ( #2159 )
...
* 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
2017-06-13 17:10:39 +02:00
Antoine Pitrou
2b5cc5ebaf
bpo-30643: Fix race condition in signal wakeup in forkserver (followup to PR #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
2017-06-13 09:46:06 +02:00
Antoine Pitrou
dfd5f34634
Fix bpo-30589: improve Process.exitcode with forkserver ( #1989 )
...
* Fix bpo-30589: improve Process.exitcode with forkserver
When the child is killed, Process.exitcode should return -signum, not 255.
* Add Misc/NEWS
2017-06-12 15:28:19 +02:00
Victor Stinner
1b7863c3b6
bpo-30595: Fix multiprocessing.Queue.get(timeout) ( #2027 )
...
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>
2017-06-10 13:10:13 +02:00
Antoine Pitrou
346cbd351e
bpo-16500: Allow registering at-fork handlers ( #1715 )
...
* 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
2017-05-27 17:50:54 +02:00
grzgrzgrz3
bc50f03db4
bpo-30414: multiprocessing.Queue._feed do not break from main loop on exc ( #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.
2017-05-25 16:22:57 +02:00
Jon Dufresne
3972628de3
bpo-30296 Remove unnecessary tuples, lists, sets, and dicts ( #1489 )
...
* 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())
2017-05-18 07:35:54 -07:00
Xiang Zhang
6f75bc003a
bpo-30301: Fix AttributeError when using SimpleQueue.empty() ( #1601 )
...
Under *spawn* and *forkserver* start methods, SimpleQueue.empty() could
raise AttributeError due to not setting _poll in __setstate__.
2017-05-17 21:04:00 +08:00
Antoine Pitrou
6dd4d734ed
bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver ( #1319 )
...
* bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver
* Tweak comment
2017-05-04 16:44:53 +02:00
Serhiy Storchaka
66bffd1663
bpo-30065: Fixed arguments validation in _posixsubprocess.fork_exec(). ( #1110 )
2017-04-19 21:12:46 +03:00
Serhiy Storchaka
5affd23e6f
bpo-29762: More use "raise from None". ( #569 )
...
This hides unwanted implementation details from tracebacks.
2017-04-05 09:37:24 +03:00
Xiang Zhang
794623bdb2
bpo-28699: fix abnormal behaviour of pools in multiprocessing.pool (GH-693)
...
an exception raised at the very first of an iterable would cause pools behave abnormally
(swallow the exception or hang)
2017-03-29 11:58:54 +08:00
Victor Stinner
d6debb24e0
bpo-29919: Remove unused imports found by pyflakes ( #137 )
...
Make also minor PEP8 coding style fixes on modified imports.
2017-03-27 16:05:26 +02:00
Antoine Pitrou
8988945cdc
bpo-29861: release references to multiprocessing Pool tasks ( #743 )
...
* 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
2017-03-24 13:52:11 +01:00
Serhiy Storchaka
bdf6b910f9
bpo-29776: Use decorator syntax for properties. ( #585 )
2017-03-19 08:40:32 +02:00
Antoine Pitrou
ebb39bcc04
Issue #28779 : multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks.
2016-12-10 17:16:17 +01:00
Antoine Pitrou
cd2a201e5b
Issue #28779 : multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks.
2016-12-10 17:13:16 +01:00
Davin Potts
5458647bb8
Issue #28053 : Applying refactorings, docs and other cleanup to follow.
2016-09-09 18:03:10 -05:00
Davin Potts
37156a70b9
Issue #21201 : Improves readability of multiprocessing error message from server to client for certain exceptions
2016-09-08 14:40:36 -05:00
Davin Potts
70897ec54c
Issue #21201 : Improves readability of multiprocessing error message from server to client for certain exceptions
2016-09-08 14:47:23 -05:00
Davin Potts
86a7668426
Fixes issue #6766 : Updated multiprocessing Proxy Objects to support nesting
2016-09-07 18:48:01 -05:00
Serhiy Storchaka
b6a9c9761c
Issue #26778 : Fixed "a/an/and" typos in code comment, documentation and error
...
messages.
2016-04-17 09:39:28 +03:00
Serhiy Storchaka
6a7b3a77b4
Issue #26778 : Fixed "a/an/and" typos in code comment and documentation.
2016-04-17 08:32:47 +03:00
Victor Stinner
a6d865c128
Issue #25654 :
...
* 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.
2016-03-25 09:29:50 +01:00
Charles-François Natali
78f55ffc63
Issue #23992 : multiprocessing: make MapResult not fail-fast upon exception.
2016-02-10 22:58:18 +00:00
Berker Peksag
16fb674882
Fix typo in docstring of multiprocessing.spawn.spawn_main()
2016-01-07 19:02:55 +02:00
Serhiy Storchaka
225821c653
Issue #25899 : Converted non-ASCII characters in docstrings and manpage
...
to ASCII replacements. Original patch by Chris Angelico.
2015-12-18 13:05:04 +02:00
Antoine Pitrou
d5aec7ba48
Issue #21116 : Avoid blowing memory when allocating a multiprocessing shared
...
array that's larger than 50% of the available RAM.
Patch by Médéric Boquien.
2015-04-13 20:53:43 +02:00
Serhiy Storchaka
2116b12da5
Issue #23865 : close() methods in multiple modules now are idempotent and more
...
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
2015-04-10 13:29:28 +03:00
Serhiy Storchaka
7e7a3dba5f
Issue #23865 : close() methods in multiple modules now are idempotent and more
...
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
2015-04-10 13:24:41 +03:00
Berker Peksag
291d7b0284
Issue #23400 : Raise same exception on both Python 2 and 3 if sem_open is not available.
...
Patch by Davin Potts.
2015-04-08 17:57:44 +03:00
Berker Peksag
7ecfc82edb
Issue #23400 : Raise same exception on both Python 2 and 3 if sem_open is not available.
...
Patch by Davin Potts.
2015-04-08 17:56:30 +03:00
Serhiy Storchaka
79fbeee237
Issue #23051 : multiprocessing.Pool methods imap() and imap_unordered() now
...
handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
Potts.
2015-03-13 08:25:26 +02:00
Serhiy Storchaka
63623ac252
Issue #23051 : multiprocessing.Pool methods imap() and imap_unordered() now
...
handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
Potts.
2015-03-13 08:30:33 +02:00
Steve Dower
4e02f8f4ae
Issue #18382 : Zero-length messages are consumed by ReadFile on Windows 8 and later
2015-03-02 08:06:30 -08:00
Steve Dower
3f9e381030
Issue #18382 : Zero-length messages are consumed by ReadFile on Windows 8 and later
2015-03-02 08:05:27 -08:00
Charles-François Natali
6e6c59b508
Issue #23285 : PEP 475 -- Retry system calls failing with EINTR.
2015-02-07 13:27:50 +00:00
Steve Dower
438f4abb50
Issue #23060 : Suppresses a multiprocessing assert that fails incorrectly
...
This is to keep buildbots running while we figure out the best long-term fix.
2014-12-17 06:35:49 -08:00
Serhiy Storchaka
b757c83ec6
Issue #22581 : Use more "bytes-like object" throughout the docs and comments.
2014-12-05 22:25:22 +02:00
Serhiy Storchaka
92bf919ed0
Issue #22581 : Use more "bytes-like object" throughout the docs and comments.
2014-12-05 22:26:10 +02:00
Antoine Pitrou
0b87831de9
Simplify code in multiprocessing.Connection.send_bytes().
...
Followup to issue #20540 ; patch by Serhiy.
2014-07-31 18:41:57 -04:00
Serhiy Storchaka
465e60e654
Issue #22033 : Reprs of most Python implemened classes now contain actual
...
class name instead of hardcoded one.
2014-07-25 23:36:00 +03:00
Charles-François Natali
6e20460dc6
Issue #21566 : Make use of socket.listen() default backlog.
2014-07-23 19:28:13 +01:00
Serhiy Storchaka
fbc877b794
Fixed bugs in reprs of CookieJar and multiprocessing.dummy.Value.
2014-07-22 11:10:37 +03:00
Serhiy Storchaka
1392df96ef
Fixed bugs in reprs of CookieJar and multiprocessing.dummy.Value.
2014-07-22 11:09:36 +03:00
Charles-François Natali
a924fc7abc
Issue #21565 : multiprocessing: use contex-manager protocol for synchronization
...
primitives.
2014-05-25 14:12:12 +01:00
Benjamin Peterson
40470e00b5
do not generate pipe names in the temporary dir
2014-04-14 12:24:37 -04:00
Richard Oudkerk
99d8dd2489
Issue #20990 : Correction for 619331c67638.
2014-03-23 18:44:11 +00:00
Richard Oudkerk
c346060440
Merge 3.3.
2014-03-23 12:52:16 +00:00
Richard Oudkerk
3e952d56ea
Issue #20633 : Replace relative import by absolute import.
2014-03-23 12:42:28 +00:00
Richard Oudkerk
80a5be1d84
Issue #20980 : Stop wrapping exception when using ThreadPool.
2014-03-23 12:30:54 +00:00
Richard Oudkerk
a40675a1a2
Issue #20990 : Fix issues found by pyflakes for multiprocessing.
2014-03-23 11:54:15 +00:00
Victor Stinner
7fa767e517
Issue #20976 : pyflakes: Remove unused imports
2014-03-20 09:16:38 +01:00
Victor Stinner
69b1e261fc
Issue #20978 : pyflakes: fix undefined names
2014-03-20 08:50:52 +01:00
Antoine Pitrou
b7d6d2ac6e
Issue #20540 : Fix a performance regression (vs. Python 3.2) when layering a multiprocessing Connection over a TCP socket.
...
For small payloads, Nagle's algorithm would introduce idle delays before the entire transmission of a message.
2014-02-08 23:03:56 +01:00
Antoine Pitrou
0c1e31ab1e
Issue #20540 : Fix a performance regression (vs. Python 3.2) when layering a multiprocessing Connection over a TCP socket.
...
For small payloads, Nagle's algorithm would introduce idle delays before the entire transmission of a message.
2014-02-08 23:05:52 +01:00
Nick Coghlan
9a76735b1d
Close #19946 : use runpy as needed in multiprocessing
...
- handles main files without a suffix
- handles main submodules properly
- adds test cases for the various kinds of __main__
2013-12-17 22:17:26 +10:00
Brett Cannon
ca7ab7c7f1
Issue #19946 : Raise ImportError when the main module cannot be found
...
by multiprocessing.spawn (before it was raising an AttributeError).
2013-12-13 11:43:10 -05:00
Eric Snow
b523f8433a
Implement PEP 451 (ModuleSpec).
2013-11-22 09:05:39 -07:00
Christian Heimes
634919a9fa
Issue #17276 : MD5 as default digestmod for HMAC is deprecated. The HMAC
...
module supports digestmod names, e.g. hmac.HMAC('sha1').
2013-11-20 17:23:06 +01:00
Richard Oudkerk
69cce482cb
Merge.
2013-11-17 17:30:54 +00:00
Richard Oudkerk
8731d7b3c6
Fix handling of SystemExit and exit code. Patch by Brodie Rao.
2013-11-17 17:24:11 +00:00
Richard Oudkerk
e943697750
Issue #19478 : Make choice of semaphore prefix more flexible.
2013-11-02 17:05:07 +00:00
Richard Oudkerk
e90cedb711
Issue #19425 -- a pickling error should not cause pool to hang.
2013-10-28 23:11:58 +00:00
Richard Oudkerk
33aaa73cad
Merge.
2013-10-28 23:23:04 +00:00
Richard Oudkerk
b1694cf588
Issue #18999 : Make multiprocessing use context objects.
...
This allows different parts of a program to use different methods for
starting processes without interfering with each other.
2013-10-16 16:41:56 +01:00
Charles-François Natali
45e255167e
Issue #18934 : Use poll/select-based selectors for multiprocessing.Connection,
...
to avoid one extra FD per Connection.
2013-09-08 11:30:53 +02:00
Charles-François Natali
e241ac9283
Issue #18934 : multiprocessing: use selectors module.
2013-09-05 20:46:49 +02:00
Victor Stinner
67973c0279
Issue #18865 : remove unused import from multiprocessing.util.spawnv_passfds()
2013-08-28 12:21:47 +02:00
Richard Oudkerk
0d097b6299
Issue #18865 : PEP 446 makes multiprocessing.util.pipe() unnecessary.
2013-08-28 11:25:34 +01:00
Victor Stinner
daf455554b
Issue #18571 : Implementation of the PEP 446: file descriptors and file handles
...
are now created non-inheritable; add functions os.get/set_inheritable(),
os.get/set_handle_inheritable() and socket.socket.get/set_inheritable().
2013-08-28 00:53:59 +02:00
Richard Oudkerk
7d2d43c0b1
Stop making fork server have copy of semaphore_tracker_fd.
2013-08-22 11:38:57 +01:00
Richard Oudkerk
0718f70131
Issue #18762 : Fix EBADF error when using forkserver.
2013-08-22 11:38:55 +01:00
Richard Oudkerk
a01fb39877
Issue #18762 : Print debug info on failure to create new forkserver process.
...
Also modify test code to hopefully avoid deadlock on failure.
2013-08-21 19:45:19 +01:00
Ezio Melotti
30b9d5d3af
#18705 : fix a number of typos. Patch by Févry Thibault.
2013-08-17 15:50:46 +03:00
Richard Oudkerk
84ed9a68bd
Issue #8713 : Support alternative start methods in multiprocessing on Unix.
...
See http://hg.python.org/sandbox/sbt#spawn
2013-08-14 15:35:41 +01:00
Eli Bendersky
580373c469
Issue #18593 : fix typo in comment
2013-07-30 06:13:01 -07:00
Eli Bendersky
25f043b152
Issue #18593 : fix typo in comment
2013-07-30 06:12:49 -07:00
Brett Cannon
cd171c8e92
Issue #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)
2013-07-04 17:43:24 -04:00
Richard Oudkerk
1b6348e084
Issue #17261 : Ensure multiprocessing's proxies use proper address.
2013-07-02 13:38:58 +01:00
Richard Oudkerk
e3e8bcf3e7
Issue #17261 : Ensure multiprocessing's proxies use proper address.
2013-07-02 13:37:43 +01:00
Richard Oudkerk
626032ac54
Issue #17097 : Merge.
2013-07-01 19:10:39 +01:00
Richard Oudkerk
cca8c53d6a
Issue #17097 : Make multiprocessing ignore EINTR.
2013-07-01 18:59:26 +01:00
Charles-François Natali
37cfb0a920
Issue #17914 : Use os.cpu_count() instead of multiprocessing.cpu_count() where
...
applicable.
2013-06-28 19:25:45 +02:00
Brett Cannon
4f4088eb6f
Issue #17177 : Stop using imp in multiprocessing
2013-06-15 13:23:01 -04:00
Brett Cannon
0a140668fa
Issue #18200 : Update the stdlib (except tests) to use
...
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Brett Cannon
a33e11e436
Issue #17314 : Stop using imp in multiprocessing.forking and move over
...
to importlib.
2013-06-07 11:45:41 -04:00
Charles-Francois Natali
44feda3cd0
Issue #17914 : Add os.cpu_count(). Patch by Yogesh Chaudhari, based on an
...
initial patch by Trent Nelson.
2013-05-20 14:40:46 +02:00
doko@ubuntu.com
94fd53ba4e
- Fix typos in the multiprocessing module.
2013-05-15 18:08:03 +02:00
doko@ubuntu.com
9df891ca41
- Fix typos in the multiprocessing module.
2013-05-15 18:06:56 +02:00