Finally spending some time reviewing this patch. It has a problem.

Igor Nazarenko wrote:

+ /* We failed to grab a context off the queue, consider allocating a
+ * new one out of the child pool. There may be up to ap_threads_per_child
+ * contexts in the system at once.
+ * Note: this function assumes that only one thread may call it,
+ * so the access to num_completion_contexts variable does not
+ * have to be protected.
+ */
The server can have multiple accept threads (one for each Listen directive), thus mpm_get_completion_context can have multiple threads in it at once. num_completion_contexts needs protecting. I basically like your patch, but I want to spend some time thinking through potential timing windows before committing it.

Bill

Reply via email to