[issue9854] SocketIO should return None on EWOULDBLOCK
report at bugs.python.org
Wed Sep 15 20:20:54 CEST 2010
Giampaolo Rodola' <g.rodola at gmail.com> added the comment:
> Non-blocking files exist
Of course, I should have been more clear.
What I meant is that there's no such thing as explicit and "native" as setblocking() for plain files.
> Returning None is what raw I/O objects are supposed to do when they
> fail reading or writing even a single byte. It is designed and
> documented as such.
>From http://docs.python.org/dev/library/io.html#module-io about io.BufferedIOBase.readinto()
> A BlockingIOError is raised if the underlying raw stream is in non
> blocking-mode, and has no data available at the moment.
This is valid for BufferedReader, BufferWriter and BufferIOBase classes in various methods while io.RawIOBase.write() and io.RawIOBase.read() return None instead. Shouldn't they raise BlockingIOError as well? Why do they return None?
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list