summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/thread.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/thread.c b/src/thread.c
index 4ea1bbf..4afd0af 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -1,4 +1,4 @@
-/* $Id: thread.c,v 1.19 2001-12-28 22:29:11 rjkaes Exp $
+/* $Id: thread.c,v 1.20 2002-01-08 02:02:25 rjkaes Exp $
*
* Handles the creation/destruction of the various threads required for
* processing incoming connections.
@@ -26,7 +26,7 @@
/*
* This is the stack frame size used by all the threads. We'll start by
- * setting it to 128 KB.
+ * setting it to 32 KB.
*/
#define THREAD_STACK_SIZE (1024 * 32)
@@ -128,6 +128,15 @@ thread_main(void *arg)
clilen = addrlen;
pthread_mutex_lock(&mlock);
+
+ /*
+ * Check to see if the program is shutting down.
+ */
+ if (config.quit) {
+ pthread_mutex_unlock(&mlock);
+ break;
+ }
+
connfd = accept(listenfd, cliaddr, &clilen);
pthread_mutex_unlock(&mlock);
@@ -139,7 +148,6 @@ thread_main(void *arg)
continue;
}
-
ptr->status = T_CONNECTED;
SERVER_DEC();
@@ -160,9 +168,7 @@ thread_main(void *arg)
ptr->status = T_EMPTY;
- safefree(cliaddr);
-
- return NULL;
+ break;
}
}
@@ -179,8 +185,7 @@ thread_main(void *arg)
ptr->status = T_EMPTY;
- safefree(cliaddr);
- return NULL;
+ break;
}
SERVER_UNLOCK();