This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Guido.van.Rossum, Richard.Kiss, giampaolo.rodola, gvanrossum, mpaolini, pitrou, python-dev, richard.kiss, vstinner, yselivanov
Date 2014-08-19.08:02:38
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAMpsgwYRPvY_YsC59kacOLLo0emkd-P6kYND8XS5AkJD4hZg3Q@mail.gmail.com>
In-reply-to <1408390596.21.0.0877303513854.issue21163@psf.upfronthosting.co.za>
Content
I don't understand how keeping a strong refrence would fix anything. You
only provided one example (async-gc-bug.py) which uses Queue objects but
keep weak references to them. Keeping strong references to tasks is not the
right fix. You must keep strong references to queues. If a queue is
destroyed, how can you put an item into it? Otherwise, the task will wait
forever. Keeping a strong refrence to the task just hides the bug. Or I
missed something.

I dislike the idea of keeping strong references to tasks, it may create
even more reference cycles. We already have too many cycles with exceptions
stored in futures (in tasks).

The current unit test uses low level functions to remove a variable using a
frame object. Can you provide an example which shows the bug without using
low level functions?
History
Date User Action Args
2014-08-19 08:02:38vstinnersetrecipients: + vstinner, gvanrossum, pitrou, giampaolo.rodola, python-dev, yselivanov, Guido.van.Rossum, richard.kiss, Richard.Kiss, mpaolini
2014-08-19 08:02:38vstinnerlinkissue21163 messages
2014-08-19 08:02:38vstinnercreate