id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 19947,weakref'd signal receivers may cause deadlock when gc'd,john@…,,"By default when a receiver is connected to a Signal it is wrapped in a saferef has a call back to Signal._remove_reciever when gc'd. Inside, _remove_receiver it acquires a lock on itself before proceeding to delete the reference of the receiver from the signal. To find the receiver, the receiver list is reversed. This generates a new listreverseiterator to be created. In turn, this can may cause a GC to run. Which clears all unreachable weakrefs, one of which may be another receiver connected to the same signal. The gc calls the callback on this receiver (_remove_receiver) and hits a deadlock on trying to acquire the Lock again.",Bug,closed,Core (Other),1.5,Normal,duplicate,,,Accepted,0,0,0,0,0,0