On Wed, 2008-08-06 at 12:46 +0200, Ruediger Pluem wrote:

> I am worried about the case that the destructor might allocate
> memory from the pool for temporary purposes (ok that would be a
> memory leak in the long run).

Not only that, but if you have a look at testreslist.c, you'll find
this:
----------------------------
static apr_status_t my_destructor(void *resource, void *params,
                                  apr_pool_t *pool)
{
    my_resource_t *res = resource;
    my_parameters_t *my_params = params;
    res->id = my_params->d_count++;

    apr_sleep(my_params->sleep_upon_destruct);

    return APR_SUCCESS;
}
----------------------------

The line "res->id = my_params->d_count++;" is updating a common
structure. Previously, this would be done under a lock in all
circumstances. With the change, this would no longer be the case. This
has potential to cause havoc in existing code. No?

-- 
Bojan

Reply via email to