[Urwid] Bug: Signal module create backreferences

Ian Ward ian at excess.org
Thu Mar 4 15:05:08 EST 2010


Dominic LoBue wrote on 2010-03-04 14:55:
> While trying to figure out why my program is eating up so much ram I
> discovered that objects that were supposed to be dead were still
> alive. Much debugging later, I discovered that the problem was caused
> by an object being kept alive by references to it by the
> _urwid_signals attribute its children objects.
...
> You can probably resolve this problem by using
> weakref.WeakValueDictionary instead of a dict. Although personally I'd
> prefer it if you switch back to having the signal registry in the
> Signals class again (one big dict is smaller than thousands and
> thousands of tiny ones).

Hi Dominic,

I would love some help in this area.  I preferred the old method too,
but the way it was being done caused another leak that I couldn't find a
solution to.

If you can make signals work with one dictionary in the Signals class
and not leak objects, please do.

Ian



More information about the Urwid mailing list