Itamar Turner-Trauring added the comment:

This is not specifically a signal issue; it can happen with garbage collection 
as well if you have a Queue.put that runs in __del__ or a weakref callback 
function.

This can happen in real code. In my case, a thread that reads log messages from 
a Queue and writes them to disk. The thread putting log messages into the Queue 
can deadlock if GC happens to cause a log message to be written right after 
Queue.put() acquired the lock.
(see https://github.com/itamarst/crochet/issues/25).

----------
nosy: +itamarst
title: Queue.PriorityQueue() is not interrupt safe -> queue.Queue() is not 
reentrant, so signals and GC can cause deadlocks
versions: +Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14976>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to