[issue9854] SocketIO should return None on EWOULDBLOCK

Antoine Pitrou report at bugs.python.org
Wed Sep 15 21:36:02 CEST 2010


Antoine Pitrou <pitrou at free.fr> added the comment:

> 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.

Indeed. It would probably be a nice addition, assuming it is portable
enough.

> > 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?

Well, that's how it was decided when the new IO lib was designed.
See http://www.python.org/dev/peps/pep-3116/#non-blocking-i-o
(but this says that write() should return 0, while the FileIO
implementation returns None; I'd say that for consistency with read()
and readinto() returning None is the right thing).

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9854>
_______________________________________


More information about the Python-bugs-list mailing list