On Thu, Jul 28, 2022 at 4:02 PM Ruediger Pluem <rpl...@apache.org> wrote:
>
> On 7/21/22 1:21 PM, yla...@apache.org wrote:
>
> > --- httpd/httpd/trunk/server/util.c (original)
> > +++ httpd/httpd/trunk/server/util.c Thu Jul 21 11:21:30 2022
>
> > @@ -3355,19 +3355,6 @@ AP_DECLARE(apr_status_t) ap_thread_main_
> >          return rv;
> >      }
> >
> > -#if APR_VERSION_AT_LEAST(1,8,0) && !APR_VERSION_AT_LEAST(2,0,0)
> > -    /* Don't let the thread's pool allocator with no limits, though there
> > -     * is possibly no allocator with APR <= 1.7 and APR_POOL_DEBUG.
> > -     */
> > -    {
> > -        apr_pool_t *tp = apr_thread_pool_get(*thread);
> > -        apr_allocator_t *ta = apr_pool_allocator_get(tp);
> > -        if (ta) {
> > -            apr_allocator_max_free_set(ta, ap_max_mem_free);
> > -        }
> > -    }
> > -#endif
> > -
>
> Why don't we do the above for APR <= 1.7? The code is now NULL safe for 
> APR_POOL_DEBUG.

For APR <= 1.7 the ap_thread_current_create() implementation in httpd
(called above) will do that already, while for >= 1.8 we use/point to
apr_thread_current_create() directly and that does not set max_free by
default (but then we call apr_threadattr_max_free_set() explicitly).

>
> >      apr_pool_cleanup_register(pool, *thread, main_thread_cleanup,
> >                                apr_pool_cleanup_null);
> >      return APR_SUCCESS;
> > @@ -3398,12 +3385,12 @@ AP_DECLARE(apr_status_t) ap_thread_curre
> >              abort_fn(rv);
> >          return rv;
> >      }
> > +    apr_allocator_max_free_set(ta, ap_max_mem_free);
> >      rv = apr_pool_create_unmanaged_ex(&p, abort_fn, ta);
> >      if (rv != APR_SUCCESS) {
> >          return rv;
> >      }
> >      /* Don't let the thread's pool allocator with no limits */
>
> The comment should move as well.

Thanks, done in r1903522.

>
> > -    apr_allocator_max_free_set(ta, ap_max_mem_free);
> >      apr_allocator_owner_set(ta, p);
> >
> >      osthd = apr_os_thread_current();
> >

Regards;
Yann.

Reply via email to