[Python-Dev] [Python-checkins] cpython: Remove outdated statements about threading and imports.
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