From 20d3fc071bb16bb63333de4bb4d66fd0e7f68b64 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 18 Dec 2000 22:23:44 +0000 Subject: Adapted from a patch by Barry Scott, SF patch #102875 and SF bug #125981: closing sockets was not thread-safe. --- Modules/socketmodule.c | 7 ++++--- 1 file 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; } -- cgit v0.12