Issue #4106: Fix occasional exceptions printed out by multiprocessing on interpreter shutdown.

This bug doesn't seem to exist on 3.2, where daemon threads are killed
before Py_Finalize() is entered.
This commit is contained in:
Antoine Pitrou 2011-08-24 22:41:05 +02:00
parent a1a8da8bf5
commit 77657e40fa
2 changed files with 4 additions and 7 deletions

View File

@ -188,13 +188,7 @@ class Queue(object):
debug('... done self._thread.start()')
# On process exit we will wait for data to be flushed to pipe.
#
# However, if this process created the queue then all
# processes which use the queue will be descendants of this
# process. Therefore waiting for the queue to be flushed
# is pointless once all the child processes have been joined.
created_by_this_process = (self._opid == os.getpid())
if not self._joincancelled and not created_by_this_process:
if not self._joincancelled:
self._jointhread = Finalize(
self._thread, Queue._finalize_join,
[weakref.ref(self._thread)],

View File

@ -40,6 +40,9 @@ Core and Builtins
Library
-------
- Issue #4106: Fix occasional exceptions printed out by multiprocessing on
interpreter shutdown.
- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
Pipe.