gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r4007 - GNUnet/src/util/network_client


From: grothoff
Subject: [GNUnet-SVN] r4007 - GNUnet/src/util/network_client
Date: Thu, 21 Dec 2006 18:17:17 -0800 (PST)

Author: grothoff
Date: 2006-12-21 18:17:16 -0800 (Thu, 21 Dec 2006)
New Revision: 4007

Modified:
   GNUnet/src/util/network_client/tcpio.c
Log:
race

Modified: GNUnet/src/util/network_client/tcpio.c
===================================================================
--- GNUnet/src/util/network_client/tcpio.c      2006-12-22 02:15:51 UTC (rev 
4006)
+++ GNUnet/src/util/network_client/tcpio.c      2006-12-22 02:17:16 UTC (rev 
4007)
@@ -313,12 +313,15 @@
   size_t size;
   size_t sent;
   int res;
-
+ 
+  MUTEX_LOCK(sock->destroylock);
   MUTEX_LOCK(sock->writelock);
   if (SYSERR == connection_ensure_connected(sock)) { 
     MUTEX_UNLOCK(sock->writelock);
+    MUTEX_UNLOCK(sock->destroylock);  
     return SYSERR;
   }
+  MUTEX_UNLOCK(sock->destroylock);
   GE_ASSERT(NULL, sock->sock != NULL);
   size = ntohs(buffer->size);
   res = socket_send(sock->sock,
@@ -344,11 +347,14 @@
   unsigned short size;
   RETURN_ERROR_MESSAGE * rem;
 
+  MUTEX_LOCK(sock->destroylock);
   MUTEX_LOCK(sock->readlock);
   if (OK != connection_ensure_connected(sock)) {
     MUTEX_UNLOCK(sock->readlock);
+    MUTEX_UNLOCK(sock->destroylock);
     return SYSERR;
   }
+  MUTEX_UNLOCK(sock->destroylock);
   GE_ASSERT(NULL, sock->sock != NULL);
   while (1) {
     pos = 0;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]