Design thought for callbacks
Frank Millman
frank at chagford.com
Mon Feb 23 07:29:14 EST 2015
"Cem Karan" <cfkaran2 at gmail.com> wrote in message
news:A3C11A70-5846-4915-BB26-B23793B65670 at gmail.com...
>
>
> Good questions! That was why I was asking about 'gotchas' with WeakSets
> originally. Honestly, the only way to know for sure would be to write two
> APIs for doing similar things, and then see how people react to them. The
> problem is, how do you set up such a study so it is statistically valid?
>
Just in case you missed Steven's comment on my 'gotcha', and my reply, it is
worth repeating that what I reported as a gotcha was not what it seemed.
If you set up the callback as a weakref, and the listening object goes out
of scope, it will wait to be garbage collected. However, as far as I can
tell, the weakref is removed at the same time as the object is gc'd, so
there is no 'window' where the weakref exists but the object it is
referencing does not exist.
My problem was that I had performed a cleanup operation on the listening
object before letting it go out of scope, and it was no longer in a valid
state to deal with the callback, resulting in an error. If you do not have
that situation, your original idea may well work.
Frank
More information about the Python-list
mailing list