rbb 99/03/03 08:02:46
Modified: pthreads/src/main fdqueue.c http_main.c Log: Performance improvement, so we don't overfill our fdqueue array. I am just moving where we update how much blanks space we have in the array, so we don't get the blank space back until the worker thread has finished serving the request. Revision Changes Path 1.12 +9 -1 apache-apr/pthreads/src/main/fdqueue.c Index: fdqueue.c =================================================================== RCS file: /home/cvs/apache-apr/pthreads/src/main/fdqueue.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- fdqueue.c 1999/02/23 19:11:21 1.11 +++ fdqueue.c 1999/03/03 16:02:45 1.12 @@ -60,7 +60,6 @@ queue->data[queue->head].fd = -1; if (fd != -1) { queue->head = (queue->head + 1) % queue->bounds; - queue->blanks++; } if (pthread_mutex_unlock(&queue->one_big_mutex) != 0) { return FD_QUEUE_FAILURE; @@ -86,3 +85,12 @@ } } +int increase_blanks(FDQueue *queue) { + if (pthread_mutex_lock(&queue->one_big_mutex) != 0) { + return FD_QUEUE_FAILURE; + } + queue->blanks++; + if (pthread_mutex_unlock(&queue->one_big_mutex) != 0) { + return FD_QUEUE_FAILURE; + } +} 1.56 +1 -1 apache-apr/pthreads/src/main/http_main.c Index: http_main.c =================================================================== RCS file: /home/cvs/apache-apr/pthreads/src/main/http_main.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- http_main.c 1999/02/24 20:30:17 1.55 +++ http_main.c 1999/03/03 16:02:45 1.56 @@ -2401,7 +2401,7 @@ csd = queue_pop(&csd_queue, &sa_client); if (csd >= 0) { process_socket(ptrans, &sa_client, csd, my_pid, my_tid); - /*increase_blanks(&csd_queue);*/ + increase_blanks(&csd_queue); } ap_clear_pool(ptrans); }