[Python-ideas] The async API of the future: yield-from

Antoine Pitrou solipsis at pitrou.net
Sun Oct 14 12:40:48 CEST 2012


On Sun, 14 Oct 2012 20:12:04 +1300
Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> 
> So the implementation of sock.async_read() is going
> to have to create another Future to handle waiting
> for the socket to become ready. But then the outer
> Future is an unnecessary complication, because you
> could get the same effect by defining
> 
>     def async_read(self, length):
>        yield future_to_wait_for_fd(self.fd)
>        return os.read(self.fd, length)

read() may fail even if select() returned successfully.
See http://bugs.python.org/issue9090

What this means is that your select-style event loop should probably
also handle actually reading the data. Besides, this will make its API
more easily ported to something like IOCP.

Regards

Antoine.


-- 
Software development and contracting: http://pro.pitrou.net





More information about the Python-ideas mailing list