manoj 99/08/11 16:55:44
Modified: mpm/src/modules/mpm/dexter dexter.c
mpm/src/modules/mpm/mpmt_pthread mpmt_pthread.c
Log:
Move a little code around to shorten the worker_thread function a bit.
Revision Changes Path
1.20 +23 -20 apache-2.0/mpm/src/modules/mpm/dexter/dexter.c
Index: dexter.c
===================================================================
RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/dexter/dexter.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -u -r1.19 -r1.20
--- dexter.c 1999/08/10 21:18:37 1.19
+++ dexter.c 1999/08/11 23:55:38 1.20
@@ -930,6 +930,27 @@
return 1;
}
+/* Sets workers_may_exit if we received a character on the pipe_of_death */
+static void check_pipe_of_death(void)
+{
+ pthread_mutex_lock(&pipe_of_death_mutex);
+ if (!workers_may_exit) {
+ int ret;
+ char pipe_read_char;
+
+ ret = read(listenfds[0].fd, &pipe_read_char, 1);
+ if (ret == -1 && errno == EAGAIN) {
+ /* It lost the lottery. It must continue to suffer
+ * through a life of servitude. */
+ }
+ else {
+ /* It won the lottery (or something else is very
+ * wrong). Embrace death with open arms. */
+ workers_may_exit = 1;
+ }
+ }
+ pthread_mutex_unlock(&pipe_of_death_mutex);
+}
/* idle_thread_count should be incremented before starting a worker_thread */
@@ -941,8 +962,6 @@
pool *ptrans; /* Pool for per-transaction stuff */
int sd = -1;
int srv;
- int ret;
- char pipe_read_char;
int curr_pollfd, last_pollfd = 0;
size_t len = sizeof(struct sockaddr);
worker_thread_info *thread_info = arg;
@@ -997,24 +1016,8 @@
if (listenfds[0].revents & POLLIN) {
/* A process got a signal on the shutdown pipe. Check if
we're
* the lucky process to die. */
- pthread_mutex_lock(&pipe_of_death_mutex);
- if (!workers_may_exit) {
- ret = read(listenfds[0].fd, &pipe_read_char, 1);
- if (ret == -1 && errno == EAGAIN) {
- /* It lost the lottery. It must continue to suffer
- * through a life of servitude. */
- pthread_mutex_unlock(&pipe_of_death_mutex);
- continue;
- }
- else {
- /* It won the lottery (or something else is very
- * wrong). Embrace death with open arms. */
- workers_may_exit = 1;
- pthread_mutex_unlock(&pipe_of_death_mutex);
- break;
- }
- }
- pthread_mutex_unlock(&pipe_of_death_mutex);
+ check_pipe_of_death();
+ continue;
}
if (num_listenfds == 1) {
1.25 +23 -20
apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.c
Index: mpmt_pthread.c
===================================================================
RCS file:
/home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -u -r1.24 -r1.25
--- mpmt_pthread.c 1999/08/10 21:18:43 1.24
+++ mpmt_pthread.c 1999/08/11 23:55:42 1.25
@@ -900,6 +900,27 @@
ap_process_connection(current_conn);
}
+/* Sets workers_may_exit if we received a character on the pipe_of_death */
+static void check_pipe_of_death(void)
+{
+ pthread_mutex_lock(&pipe_of_death_mutex);
+ if (!workers_may_exit) {
+ int ret;
+ char pipe_read_char;
+
+ ret = read(listenfds[0].fd, &pipe_read_char, 1);
+ if (ret == -1 && errno == EAGAIN) {
+ /* It lost the lottery. It must continue to suffer
+ * through a life of servitude. */
+ }
+ else {
+ /* It won the lottery (or something else is very
+ * wrong). Embrace death with open arms. */
+ workers_may_exit = 1;
+ }
+ }
+ pthread_mutex_unlock(&pipe_of_death_mutex);
+}
static void * worker_thread(void * dummy)
{
@@ -912,8 +933,6 @@
pool *ptrans; /* Pool for per-transaction stuff */
int sd = -1;
int srv;
- int ret;
- char pipe_read_char;
int curr_pollfd, last_pollfd = 0;
size_t len = sizeof(struct sockaddr);
@@ -958,24 +977,8 @@
if (listenfds[0].revents & POLLIN) {
/* A process got a signal on the shutdown pipe. Check if
we're
* the lucky process to die. */
- pthread_mutex_lock(&pipe_of_death_mutex);
- if (!workers_may_exit) {
- ret = read(listenfds[0].fd, &pipe_read_char, 1);
- if (ret == -1 && errno == EAGAIN) {
- /* It lost the lottery. It must continue to suffer
- * through a life of servitude. */
- pthread_mutex_unlock(&pipe_of_death_mutex);
- continue;
- }
- else {
- /* It won the lottery (or something else is very
- * wrong). Embrace death with open arms. */
- workers_may_exit = 1;
- pthread_mutex_unlock(&pipe_of_death_mutex);
- break;
- }
- }
- pthread_mutex_unlock(&pipe_of_death_mutex);
+ check_pipe_of_death();
+ continue;
}
if (num_listenfds == 1) {