Oups, I forgot the cleanup :p
On Mon, Oct 6, 2014 at 9:45 PM, Yann Ylavic <[email protected]> wrote:
> Index: server/mpm/prefork/prefork.c
> ===================================================================
> --- server/mpm/prefork/prefork.c (revision 1629482)
> +++ server/mpm/prefork/prefork.c (working copy)
[...]
> @@ -1232,6 +1250,16 @@ static int prefork_run(apr_pool_t *_pconf, apr_poo
> return DONE;
> }
>
> + if (!retained->bucket) {
> + retained->daemons_limit = ap_daemons_limit;
> + retained->bucket = ap_malloc(sizeof(int) * ap_daemons_limit);
> + if (!retained->bucket) {
> + ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, APLOGNO()
> + "could not allocate buckets");
> + }
Here:
+ apr_pool_cleanup_register(s->process->pool, retained->bucket,
+ free_bucket, apr_pool_cleanup_null);
> + }
> + memcpy(retained->bucket, bucket, sizeof(int) * ap_daemons_limit);
> +
> /* advance to the next generation */
> /* XXX: we really need to make sure this new generation number isn't in
> * use by any of the children.
> [END]
With :
static apr_status_t free_bucket(void *bucket)
{
free(bucket);
return APR_SUCCESS;
}