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 Sebastian.Kreft.Deezer, giampaolo.rodola, gvanrossum, pitrou, vstinner, yselivanov
Date 2014-05-28.21:20:31
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1401312032.8.0.872094043932.issue21595@psf.upfronthosting.co.za>
In-reply-to
Content
BaseProactorEventLoop._loop_self_reading() uses an overlapped read of 4096 bytes. I don't understand how it wakes up the event loop. When the operation is done, _loop_self_reading() is scheduled with call_soon() by the Future object. Is it enough to wake up the event loop?

Is BaseProactorEventLoop correct?

--

Oh, I forgot to explain this part of asyncio_read_from_self.patch:

+                data = self._ssock.recv(4096)
+                if not data:
+                    break

This break "should never occur". It should only occur if _ssock is no more blocking. But it would be a bug, because this pipe is private and set to non-blocking at its creation.

I chose to add the test because it should not hurt to add it "just in case" (and to avoid an unlimited busy loop).
History
Date User Action Args
2014-05-28 21:20:32vstinnersetrecipients: + vstinner, gvanrossum, pitrou, giampaolo.rodola, yselivanov, Sebastian.Kreft.Deezer
2014-05-28 21:20:32vstinnersetmessageid: <1401312032.8.0.872094043932.issue21595@psf.upfronthosting.co.za>
2014-05-28 21:20:32vstinnerlinkissue21595 messages
2014-05-28 21:20:31vstinnercreate