httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Erenkrantz <jerenkra...@apache.org>
Subject Re: [PATCH] MaxMemFree directive
Date Sun, 30 Jun 2002 07:51:22 GMT
On Fri, Jun 28, 2002 at 01:28:33PM +0200, Sander Striker wrote:
> All MPMs that are creating their own allocator* (to get rid of
> locking overhead), now have the MaxMemFree directive.  MaxMemFree
> allows you to set the maximum amount of memory (in kB), you want
> the child allocator to hold on to.  Anything over that threshold
> is free()d back to the system.  The default stays 'unlimited'.

+1 in concept.

> /me just realized we have another magic value to get rid off and instead
>     do #define APR_ALLOCATOR_MAX_FREE_UNLIMITED  0,  *sigh*

That'd be nice to add when you cleanup the allocator stuff to
make the types opaque.  =)

> +#ifdef AP_MPM_WANT_SET_MAX_MEM_FREE
> +apr_uint32_t ap_max_mem_free = 0;
> +
> +const char *ap_mpm_set_max_mem_free(cmd_parms *cmd, void *dummy,
> +	                            const char *arg)
> +{
> +    const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
> +    if (err != NULL) {
> +        return err;
> +    }
> +    
> +    ap_max_mem_free = atoi(arg) * 1024;
> +
> +    return NULL;
> +}

My one caveat would be to enforce that arg is positive.
atoi() could return a negative, but it'll get casted to an
unsigned 32-bit quantity.

Or does the config core code reject negative numbers straight out?
(Way too lazy to check myself.)  I think you'd be safer if you used
strtol (or better yet strtoul - strtoul is in C89, so that should be
everywhere).  -- justin

Mime
View raw message