[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r5204 - GNUnet/src/server
From: |
gnunet |
Subject: |
[GNUnet-SVN] r5204 - GNUnet/src/server |
Date: |
Sun, 1 Jul 2007 06:52:23 -0600 (MDT) |
Author: grothoff
Date: 2007-07-01 06:52:23 -0600 (Sun, 01 Jul 2007)
New Revision: 5204
Modified:
GNUnet/src/server/handler.c
Log:
fix
Modified: GNUnet/src/server/handler.c
===================================================================
--- GNUnet/src/server/handler.c 2007-07-01 12:26:27 UTC (rev 5203)
+++ GNUnet/src/server/handler.c 2007-07-01 12:52:23 UTC (rev 5204)
@@ -132,12 +132,11 @@
MessagePartHandler callback) {
unsigned int last;
- MUTEX_LOCK(handlerLock);
if (threads_running == YES) {
GE_BREAK(ectx, NULL);
- MUTEX_UNLOCK(handlerLock);
return SYSERR;
}
+ MUTEX_LOCK(handlerLock);
if (type >= max_registeredType) {
unsigned int ort = max_registeredType;
GROW(handlers,
@@ -176,12 +175,11 @@
unsigned int pos;
unsigned int last;
- MUTEX_LOCK(handlerLock);
if (threads_running == YES) {
GE_BREAK(ectx, 0);
- MUTEX_UNLOCK(handlerLock);
return SYSERR;
}
+ MUTEX_LOCK(handlerLock);
if (type < max_registeredType) {
pos = 0;
while ( (handlers[type][pos] != NULL) &&
@@ -223,12 +221,11 @@
PlaintextMessagePartHandler callback) {
unsigned int last;
- MUTEX_LOCK(handlerLock);
if (threads_running == YES) {
- MUTEX_UNLOCK(handlerLock);
GE_BREAK(ectx, 0);
return SYSERR;
}
+ MUTEX_LOCK(handlerLock);
if (type >= plaintextmax_registeredType) {
unsigned int ort = plaintextmax_registeredType;
GROW(plaintextHandlers,
@@ -267,12 +264,11 @@
unsigned int pos;
unsigned int last;
- MUTEX_LOCK(handlerLock);
if (threads_running == YES) {
GE_BREAK(ectx, 0);
- MUTEX_UNLOCK(handlerLock);
return SYSERR;
}
+ MUTEX_LOCK(handlerLock);
if (type < plaintextmax_registeredType) {
pos = 0;
while ( (plaintextHandlers[type][pos] != NULL) &&
@@ -592,7 +588,7 @@
void core_receive(P2P_PACKET * mp) {
if ( (threads_running == NO) ||
(mainShutdownSignal != NULL) ||
- (SYSERR == SEMAPHORE_DOWN(bufferQueueWrite_, YES)) ) {
+ (SYSERR == SEMAPHORE_DOWN(bufferQueueWrite_, NO)) ) {
/* discard message, buffer is full or
we're shut down! */
GE_LOG(ectx,
@@ -657,9 +653,7 @@
bq_firstFull_ = 0;
/* create message handling threads */
- MUTEX_LOCK(handlerLock);
threads_running = YES;
- MUTEX_UNLOCK(handlerLock);
for (i=0;i<THREAD_COUNT;i++) {
threads_[i] = PTHREAD_CREATE(&threadMain,
&i,
@@ -679,6 +673,7 @@
void * unused;
/* shutdown processing of inbound messages... */
+ threads_running = NO;
mainShutdownSignal = SEMAPHORE_CREATE(0);
for (i=0;i<THREAD_COUNT;i++) {
SEMAPHORE_UP(bufferQueueRead_);
@@ -688,9 +683,6 @@
PTHREAD_JOIN(threads_[i], &unused);
threads_[i] = NULL;
}
- MUTEX_LOCK(handlerLock);
- threads_running = NO;
- MUTEX_UNLOCK(handlerLock);
SEMAPHORE_DESTROY(mainShutdownSignal);
mainShutdownSignal = NULL;
MUTEX_DESTROY(globalLock_);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r5204 - GNUnet/src/server,
gnunet <=