This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author McNetic
Recipients McNetic
Date 2012-09-20.11:12:49
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
There are some differences between win32 and other os socket implementations. One specific I found is that in windows, non-blocking socket apis will return WSAEWOULDBLOCK or 10035 instead of EWOULDBLOCK.

This causes recv() in asyncore.dispatcher to raise an unhandled exception instead of continuing gracefully.

The fix could maybe be as simple as replacing line 384 in
  data = self.socket.recv(buffer_size)
    data = self.socket.recv(buffer_size)
  except socket.error as e:
    if 10035 == e.errno:
      raise e

The differences between windows and unix non-blocking sockets are summarized quite nice here:

The original documentation from microsoft can be found here:
Date User Action Args
2012-09-20 11:12:50McNeticsetrecipients: + McNetic
2012-09-20 11:12:50McNeticsetmessageid: <>
2012-09-20 11:12:49McNeticlinkissue15982 messages
2012-09-20 11:12:49McNeticcreate