[issue11266] asyncore does not handle EINTR in recv, send, connect, accept,

Марк Коренберг report at bugs.python.org
Sat Mar 5 06:09:46 CET 2011


Марк Коренберг <socketpair at gmail.com> added the comment:

When using non-blocking IO, we issue select (or poll,epoll), and after that kernel should guarantee, that recv or send will complete immediatelly, transferring data as needed. But sometimes (as Linux is buggy), such operations results in EINTR error if some signal arrived during this call. In that case python exception generated and typically connection will be closed.
  To recover from this situation it is OK to call recv or send again in case of EINTR. All network functions (recv*, send*, accept, connect) are vulnerable for EINTR in practice.

----------

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


More information about the Python-bugs-list mailing list