[Python-Dev] [Python-checkins] cpython (2.7): Issue #9090 : Error code 10035 calling socket.recv() on a socket with a timeout (original) (raw)

Guido van Rossum guido at python.org
Tue Mar 19 20:55:53 CET 2013


On Tue, Mar 19, 2013 at 11:08 AM, kristjan.jonsson < python-checkins at python.org> wrote:

http://hg.python.org/cpython/rev/8ec39bfd1f01 changeset: 82764:8ec39bfd1f01 branch: 2.7 parent: 82740:b10ec5083a53 user: Kristján Valur Jónsson <sweskman at gmail.com> date: Tue Mar 19 10:58:59 2013 -0700 summary: Issue #9090 : Error code 10035 calling socket.recv() on a socket with a timeout (WSAEWOULDBLOCK - A non-blocking socket operation could not be completed immediately) [...] +- Issue #9090: When a socket with a timeout fails with EWOULDBLOCK or EAGAIN, + retry the select() loop instead of bailing out. This is because select() + can incorrectly report a socket as ready for reading (for example, if it + received some data with an invalid checksum).

Might I recommend treating EINTR the same way? It has the same issue of popping up, rarely, when you least expect it, and messing with your code.

-- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130319/29e55b78/attachment.html>



More information about the Python-Dev mailing list