rbb 99/10/13 10:45:17
Modified: src/lib/apr/lib apr_pools.c
Log:
I am actually going to fix the recursive lock contention this time.
These locks were removed when Dean did his NSPR work a long time ago,
and were carried over into the apache-apr tree. When the lib directory
was created for APR though, it was created from the 1.3 tree, which still
had these locks. This removes them, hopefully for good. I have tested
the server, and it appears to serve pages again, but as always, YMMV
Revision Changes Path
1.19 +3 -9 apache-2.0/src/lib/apr/lib/apr_pools.c
Index: apr_pools.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_pools.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- apr_pools.c 1999/10/12 17:54:32 1.18
+++ apr_pools.c 1999/10/13 17:45:16 1.19
@@ -563,19 +563,13 @@
* This way, we are garaunteed that we only lock this mutex once when calling
* either one of these functions.
*/
-static void ap_clear_real_pool(ap_pool_t *a, int clearcaller)
+static void ap_clear_real_pool(ap_pool_t *a)
{
ap_block_alarms();
- if (clearcaller) {
- ap_lock(alloc_mutex);
- }
while (a->sub_pools) {
ap_destroy_real_pool(a->sub_pools);
}
- if (clearcaller) {
- ap_unlock(alloc_mutex);
- }
/*
* Don't hold the mutex during cleanups.
*/
@@ -608,13 +602,13 @@
API_EXPORT(void) ap_clear_pool(struct context_t *a)
{
- ap_clear_real_pool(a->pool, 1);
+ ap_clear_real_pool(a->pool);
}
API_EXPORT(void) ap_destroy_real_pool(ap_pool_t *a)
{
ap_block_alarms();
- ap_clear_real_pool(a, 0);
+ ap_clear_real_pool(a);
ap_lock(alloc_mutex);
if (a->parent) {