From 5d872b26a180a8b1041fd8a0b909b7a6f639af66 Mon Sep 17 00:00:00 2001 From: fbernon Date: Wed, 4 Jul 2007 21:13:25 +0000 Subject: [PATCH] sockets.c: Fix a possible problem because any new socket can't be created during the "close" (which can be "long" since fix for bug #20021). --- src/api/sockets.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index a6580a67..1421782d 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -282,16 +282,14 @@ lwip_close(int s) LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_close(%d)\n", s)); - /* We cannot allow multiple closes of the same socket. */ - sys_sem_wait(socksem); - sock = get_socket(s); if (!sock) { - sys_sem_signal(socksem); return -1; } netconn_delete(sock->conn); + + sys_sem_wait(socksem); if (sock->lastdata) { netbuf_delete(sock->lastdata); }