﻿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
