gnunet-svn
[Top][All Lists]
Advanced

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

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


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

Author: grothoff
Date: 2006-12-21 18:15:51 -0800 (Thu, 21 Dec 2006)
New Revision: 4006

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:05:44 UTC (rev 
4005)
+++ GNUnet/src/util/network_client/tcpio.c      2006-12-22 02:15:51 UTC (rev 
4006)
@@ -314,10 +314,13 @@
   size_t sent;
   int res;
 
-  if (SYSERR == connection_ensure_connected(sock))
+  MUTEX_LOCK(sock->writelock);
+  if (SYSERR == connection_ensure_connected(sock)) { 
+    MUTEX_UNLOCK(sock->writelock);
     return SYSERR;
+  }
+  GE_ASSERT(NULL, sock->sock != NULL);
   size = ntohs(buffer->size);
-  MUTEX_LOCK(sock->writelock);
   res = socket_send(sock->sock,
                    NC_Complete,
                    buffer,
@@ -341,10 +344,12 @@
   unsigned short size;
   RETURN_ERROR_MESSAGE * rem;
 
-  if (OK != connection_ensure_connected(sock))
+  MUTEX_LOCK(sock->readlock);
+  if (OK != connection_ensure_connected(sock)) {
+    MUTEX_UNLOCK(sock->readlock);
     return SYSERR;
-
-  MUTEX_LOCK(sock->readlock);
+  }
+  GE_ASSERT(NULL, sock->sock != NULL);
   while (1) {
     pos = 0;
     res = 0;





reply via email to

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