[Python-Dev] [Python-checkins] cpython: Remove outdated statements about threading and imports. (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Fri May 18 15:16:09 CEST 2012


I know you fixed the deadlock problem, but the warnings about shutdown misbehaviour are still valid.

-- Sent from my phone, thus the relative brevity :) On May 18, 2012 9:59 PM, "antoine.pitrou" <python-checkins at python.org> wrote:

http://hg.python.org/cpython/rev/565734c9b66d changeset: 77020:565734c9b66d parent: 77018:364289cc7891 user: Antoine Pitrou <solipsis at pitrou.net> date: Fri May 18 13:57:04 2012 +0200 summary: Remove outdated statements about threading and imports.

files: Doc/library/multiprocessing.rst | 4 +-- Doc/library/threading.rst | 23 --------------------- 2 files changed, 1 insertions(+), 26 deletions(-)

diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -120,9 +120,7 @@ print(q.get()) # prints "[42, None, 'hello']" p.join() - Queues are thread and process safe, but note that they must never - be instantiated as a side effect of importing a module: this can lead - to a deadlock! (see :ref:threaded-imports) + Queues are thread and process safe. Pipes diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -996,27 +996,3 @@ Currently, :class:Lock, :class:RLock, :class:Condition, :class:Semaphore, and :class:BoundedSemaphore objects may be used as :keyword:with statement context managers. - - -.. threaded-imports: - -Importing in threaded code --------------------------- - -While the import machinery is thread-safe, there are two key restrictions on -threaded imports due to inherent limitations in the way that thread-safety is -provided: - -* Firstly, other than in the main module, an import should not have the - side effect of spawning a new thread and then waiting for that thread in - any way. Failing to abide by this restriction can lead to a deadlock if - the spawned thread directly or indirectly attempts to import a module. -* Secondly, all import attempts must be completed before the interpreter - starts shutting itself down. This can be most easily achieved by only - performing imports from non-daemon threads created through the threading - module. Daemon threads and threads created directly with the thread - module will require some other form of synchronization to ensure they do - not attempt imports after system shutdown has commenced. Failure to - abide by this restriction will lead to intermittent exceptions and - crashes during interpreter shutdown (as the late imports attempt to - access machinery which is no longer in a valid state). -- Repository URL: http://hg.python.org/cpython


Python-checkins mailing list Python-checkins at python.org http://mail.python.org/mailman/listinfo/python-checkins -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20120518/c21950aa/attachment.html>



More information about the Python-Dev mailing list