[Remove entries to the current 2.0 section below, when backported]
+ *) perchild MPM: Fix thread safety problem in the use of longjmp().
+ [Tsuyoshi SASAMOTO <nazonazo super.win.ne.jp>]
+
*) Add load balancer support to the scoreboard in preparation for
load balancing support in mod_proxy. [Mladen Turk]
static int requests_this_child;
static int num_listensocks = 0;
static ap_pod_t *pod;
-static jmp_buf jmpbuffer;
+static jmp_buf *jmpbuffers;
struct child_info_t {
uid_t uid;
}
}
apr_thread_mutex_unlock(idle_thread_count_mutex);
- if (setjmp(jmpbuffer) != 1) {
+ if (setjmp(jmpbuffers[thread_num]) != 1) {
process_socket(ptrans, csd, conn_id, bucket_alloc);
}
else {
}
ap_child_table = (ap_ctable *)apr_pcalloc(p, server_limit * sizeof(ap_ctable));
+ jmpbuffers = (jmp_buf *)apr_palloc(p, thread_limit * sizeof(jmp_buf));
+
return OK;
}
ap_server_conf, "Could not pass request to proper "
"child, request will not be honored.");
}
- longjmp(jmpbuffer, 1);
+ longjmp(jmpbuffers[thread_num], 1);
}
return OK;
}