[docs] [issue13322] buffered read() and write() does not raise BlockingIOError

Alexey Izbyshev report at bugs.python.org
Wed Dec 6 13:33:11 EST 2017


Alexey Izbyshev <izbyshev at ispras.ru> added the comment:

For added fun: at least one part of the standard library doesn't expect None returns from read() in the buffering layer.

>>> import os
>>> r, w = os.pipe2(os.O_NONBLOCK)
>>> f = os.fdopen(r, 'r')
>>> f.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/izbyshev/workspace/cpython/Lib/codecs.py", line 321, in decode
    data = self.buffer + input
TypeError: can't concat NoneType to bytes

Note that nonblock-none.patch doesn't seem to address that.

----------
nosy: +izbyshev
versions: +Python 3.5, Python 3.6, Python 3.7, Python 3.8

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue13322>
_______________________________________


More information about the docs mailing list