diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/socketmodule.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index e9b3aad..11e87bc 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -904,14 +904,15 @@ pair (host, port); the host must refer to the local host."; static PyObject * PySocketSock_close(PySocketSockObject *s, PyObject *args) { + SOCKET_T fd; if (!PyArg_ParseTuple(args, ":close")) return NULL; - if (s->sock_fd != -1) { + if ((fd = s->sock_fd) != -1) { + s->sock_fd = -1; Py_BEGIN_ALLOW_THREADS - (void) SOCKETCLOSE(s->sock_fd); + (void) SOCKETCLOSE(fd); Py_END_ALLOW_THREADS } - s->sock_fd = -1; Py_INCREF(Py_None); return Py_None; } |