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 gvanrossum, python-dev, sbt, steve.dower, tim.golden, vstinner, yselivanov, zach.ware
Date 2015-01-21.22:46:32
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1421880392.55.0.263747812861.issue23095@psf.upfronthosting.co.za>
In-reply-to
Content
It took me several months to understand this issue. For the beginning of the story, see:
https://code.google.com/p/tulip/issues/detail?id=196

But I think that *this* issue can be closed: UnregisterWaitEx() really do what we need in asyncio.

I don't like the complex IocpProactor._unregister() function and _WaitCancelFuture class, but it looks that it's how we are supposed to wait until a wait for a handle is cancelled... Windows IOCP API is much complex that what I expected. It's probably because some parts (especially RegisterWaitForSingleObject()) are implemented with threads in user land, not in the kernel.

In short, I'm very happy that have fixed this very complex but also very annoying IOCP bug in asyncio.
History
Date User Action Args
2015-01-21 22:46:32vstinnersetrecipients: + vstinner, gvanrossum, tim.golden, python-dev, sbt, zach.ware, yselivanov, steve.dower
2015-01-21 22:46:32vstinnersetmessageid: <1421880392.55.0.263747812861.issue23095@psf.upfronthosting.co.za>
2015-01-21 22:46:32vstinnerlinkissue23095 messages
2015-01-21 22:46:32vstinnercreate