diff -r 60e060f4faa9 -r 42fcb2f7787d mercurial/httpclient/__init__.py --- a/mercurial/httpclient/__init__.py Sat May 11 20:40:15 2013 -0500 +++ b/mercurial/httpclient/__init__.py Wed Jul 24 14:45:29 2013 -0400 @@ -622,6 +622,8 @@ # TODO: find a way to block on ssl flushing its buffer # similar to selecting on a raw socket. continue + if e[0] == errno.EWOULDBLOCK or e[0] == errno.EAGAIN: + continue elif (e[0] not in (errno.ECONNRESET, errno.EPIPE) and not first): raise