manoj 99/04/29 13:09:45
Modified: pthreads/src/include http_accept.h
pthreads/src/main http_main.c
Log:
Add a per-thread pool, and make all worker threads use it instead of
pchild, for thread-safety
Revision Changes Path
1.7 +1 -0 apache-apr/pthreads/src/include/http_accept.h
Index: http_accept.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/http_accept.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -u -r1.6 -r1.7
--- http_accept.h 1999/04/17 04:25:55 1.6
+++ http_accept.h 1999/04/29 20:09:42 1.7
@@ -71,6 +71,7 @@
int pid;
int tid;
int sd;
+ pool *tpool; /* "pthread" would be confusing */
} proc_info;
/* Select the accept technique. Move this to ap_config eventually... */
1.79 +4 -2 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.78
retrieving revision 1.79
diff -u -u -r1.78 -r1.79
--- http_main.c 1999/04/29 19:34:21 1.78
+++ http_main.c 1999/04/29 20:09:44 1.79
@@ -1735,13 +1735,14 @@
proc_info * ti = dummy;
int process_slot = ti->pid;
int thread_slot = ti->tid;
+ pool *tpool = ti->tpool;
struct sockaddr sa_client;
int csd;
pool *ptrans; /* Pool for per-transaction stuff */
free(ti);
- ptrans = ap_make_sub_pool(pchild);
+ ptrans = ap_make_sub_pool(tpool);
while (1) {
(void) ap_update_child_status(process_slot, thread_slot,
SERVER_READY,
@@ -1754,7 +1755,7 @@
ap_clear_pool(ptrans);
}
- ap_destroy_pool(ptrans);
+ ap_destroy_pool(tpool);
kill(ap_scoreboard_image->parent[process_slot].pid, SIGWINCH);
ap_update_child_status(process_slot, thread_slot, SERVER_DEAD,
(request_rec *) NULL);
@@ -1929,6 +1930,7 @@
my_info->pid = my_child_num;
my_info->tid = i;
my_info->sd = 0;
+ my_info->tpool = ap_make_sub_pool(pchild);
/* We are creating threads right now */
(void) ap_update_child_status(my_child_num, i, SERVER_STARTING,