Last days, Donald Stufft spent time to investiage a tricky reference cycle bug in the pip project. The fix looks similar to your proposition: https://github.com/dstufft/pip/commit/0bbc4ac2a92c264b8c7eacd5d619d17fdffefbc5
Similar but different because pip has a different design. In asyncio, there is no need to set _callback and _args to None at the end of _run(), because the handle is destroyed just after the call to _run(). Victor
