[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r3771 - in GNUnet/src: applications/session transports util
From: |
grothoff |
Subject: |
[GNUnet-SVN] r3771 - in GNUnet/src: applications/session transports util/network |
Date: |
Tue, 14 Nov 2006 18:46:17 -0800 (PST) |
Author: grothoff
Date: 2006-11-14 18:46:13 -0800 (Tue, 14 Nov 2006)
New Revision: 3771
Modified:
GNUnet/src/applications/session/sessiontest.c
GNUnet/src/transports/tcp_old.c
GNUnet/src/util/network/select.c
Log:
fix
Modified: GNUnet/src/applications/session/sessiontest.c
===================================================================
--- GNUnet/src/applications/session/sessiontest.c 2006-11-15 01:20:59 UTC
(rev 3770)
+++ GNUnet/src/applications/session/sessiontest.c 2006-11-15 02:46:13 UTC
(rev 3771)
@@ -31,7 +31,7 @@
#include "gnunet_util_network_client.h"
#include "gnunet_stats_lib.h"
-#define START_PEERS 1
+#define START_PEERS 0
static int ok;
Modified: GNUnet/src/transports/tcp_old.c
===================================================================
--- GNUnet/src/transports/tcp_old.c 2006-11-15 01:20:59 UTC (rev 3770)
+++ GNUnet/src/transports/tcp_old.c 2006-11-15 02:46:13 UTC (rev 3771)
@@ -692,6 +692,8 @@
int sock;
lenOfIncomingAddr = sizeof(clientAddr);
+ /* make sure we do not block */
+ setBlocking(tcp_sock, NO);
sock = ACCEPT(tcp_sock,
(struct sockaddr *)&clientAddr,
&lenOfIncomingAddr);
Modified: GNUnet/src/util/network/select.c
===================================================================
--- GNUnet/src/util/network/select.c 2006-11-15 01:20:59 UTC (rev 3770)
+++ GNUnet/src/util/network/select.c 2006-11-15 02:46:13 UTC (rev 3771)
@@ -513,18 +513,23 @@
lenOfIncomingAddr = sh->max_addr_len;
memset(clientAddr,
0,
- lenOfIncomingAddr);
+ lenOfIncomingAddr);
+ /* make sure this is non-blocking */
+ socket_set_blocking(sh->listen_sock,
+ NO);
s = ACCEPT(sh->listen_sock->handle,
(struct sockaddr *) clientAddr,
&lenOfIncomingAddr);
if (s == -1) {
+ GE_LOG_STRERROR(sh->ectx,
+ GE_WARNING | GE_ADMIN | GE_BULK,
+ "accept");
GE_LOG(sh->ectx,
GE_WARNING | GE_ADMIN | GE_BULK,
"Select %s failed to accept!\n",
sh->description);
- GE_LOG_STRERROR(sh->ectx,
- GE_WARNING | GE_ADMIN | GE_BULK,
- "accept");
+ if ( (errno == EAGAIN) || (errno == EWOULDBLOCK))
+ continue; /* not good, but not fatal either */
break;
} else {
#if DEBUG_SELECT
@@ -867,11 +872,13 @@
signalSelect(sh);
PTHREAD_STOP_SLEEP(sh->thread);
PTHREAD_JOIN(sh->thread, &unused);
+ MUTEX_LOCK(sh->lock);
while (sh->sessionCount > 0)
destroySession(sh, sh->sessions[0]);
GROW(sh->sessions,
sh->sessionArrayLength,
0);
+ MUTEX_UNLOCK(sh->lock);
MUTEX_DESTROY(sh->lock);
if (0 != CLOSE(sh->signal_pipe[1]))
GE_LOG_STRERROR(sh->ectx,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r3771 - in GNUnet/src: applications/session transports util/network,
grothoff <=