From: Raymond Hettinger Date: Fri, 9 Sep 2016 22:57:13 +0000 (-0700) Subject: Issue 14976: Note that the queue module is not designed to protect against reentrancy X-Git-Tag: v3.6.0b1~149^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=87dc4d61890b4ed1c74b1f5e7256b3aa2080a499;p=thirdparty%2FPython%2Fcpython.git Issue 14976: Note that the queue module is not designed to protect against reentrancy --- diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst index f80385270be0..e026e52bbd8f 100644 --- a/Doc/library/queue.rst +++ b/Doc/library/queue.rst @@ -22,6 +22,8 @@ the first retrieved (operating like a stack). With a priority queue, the entries are kept sorted (using the :mod:`heapq` module) and the lowest valued entry is retrieved first. +Internally, the module uses locks to temporarily block competing threads; +however, it is not designed to handle reentrancy within a thread. The :mod:`queue` module defines the following classes and exceptions: @@ -186,11 +188,6 @@ Example of how to wait for enqueued tasks to be completed:: t.join() -.. note:: - - The :mod:`queue` module is not safe for use from :mod:`signal` handlers as - it uses :mod:`threading` locks. - .. seealso:: Class :class:`multiprocessing.Queue`