]> granicus.if.org Git - python/commitdiff
Issue #23618: Fix EINTR handling on Windows
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 1 Apr 2015 09:09:43 +0000 (11:09 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 1 Apr 2015 09:09:43 +0000 (11:09 +0200)
Windows uses WSAEINTR error code, not EINTR, for socket functions.

Modules/socketmodule.c

index fd73e08fc9eb45e36e8e52c8db40bae70b775c86..fcb1ff4f01703aa5126ca0a3cc37a79945b90639 100644 (file)
@@ -2476,7 +2476,7 @@ internal_connect(PySocketSockObject *s, struct sockaddr *addr, int addrlen,
     }
 
     err = GET_ERROR;
-    if (err == EINTR && PyErr_CheckSignals())
+    if (CHECK_ERRNO(EINTR) && PyErr_CheckSignals())
         return -1;
 
     wait_connect = (s->sock_timeout > 0 && err == IN_PROGRESS_ERR
@@ -2488,7 +2488,7 @@ internal_connect(PySocketSockObject *s, struct sockaddr *addr, int addrlen,
     if (timeout == -1) {
         /* select() failed */
         err = GET_ERROR;
-        if (err == EINTR && PyErr_CheckSignals())
+        if (CHECK_ERRNO(EINTR) && PyErr_CheckSignals())
             return -1;
         return err;
     }