From 87dc4d61890b4ed1c74b1f5e7256b3aa2080a499 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 9 Sep 2016 15:57:13 -0700 Subject: Issue 14976: Note that the queue module is not designed to protect against reentrancy --- Doc/library/queue.rst | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Doc/library/queue.rst b/Doc/library/queue.rst index f803852..e026e52 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` -- cgit v0.12