On 09/16/2011 07:02 PM, Stefan Fritsch wrote:
> On Fri, 16 Sep 2011, Ruediger Pluem wrote:
>> On 09/15/2011 09:53 PM, [email protected] wrote:
>>> Author: sf
>>> Date: Thu Sep 15 19:53:59 2011
>>> New Revision: 1171247
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1171247&view=rev
>>> Log:
>>> Create wrapper API for apr_random;
>>> use in mod_lbmethod_heartbeat and mod_serf to
>>> - replace some needles use of apr_generate_random_bytes
>>> - remove code duplication
>>>
>>> Modified:
>>>     httpd/httpd/trunk/CHANGES
>>>     httpd/httpd/trunk/include/ap_mmn.h
>>>     httpd/httpd/trunk/include/httpd.h
>>>     httpd/httpd/trunk/include/mod_core.h
>>>     httpd/httpd/trunk/modules/http/http_core.c
>>>     httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
>>>     httpd/httpd/trunk/modules/proxy/mod_serf.c
>>>     httpd/httpd/trunk/server/core.c
>>>
>>
>>> Modified: httpd/httpd/trunk/server/core.c
>>> URL:
>>> http://svn.apache.org/viewvc/httpd/httpd/trunk/server/core.c?rev=1171247&r1=1171246&r2=1171247&view=diff
>>>
>>> ==============================================================================
>>>
>>> --- httpd/httpd/trunk/server/core.c (original)
>>> +++ httpd/httpd/trunk/server/core.c Thu Sep 15 19:53:59 2011
>>> @@ -20,6 +20,7 @@
>>>  #include "apr_fnmatch.h"
>>>  #include "apr_hash.h"
>>>  #include "apr_thread_proc.h"    /* for RLIMIT stuff */
>>> +#include "apr_random.h"
>>>
>>>  #define APR_WANT_IOVEC
>>>  #define APR_WANT_STRFUNC
>>> @@ -4593,12 +4594,93 @@ AP_DECLARE(int) ap_state_query(int query
>>>      }
>>>  }
>>>
>>> +static apr_random_t *rng = NULL;
>>> +#if APR_HAS_THREADS
>>> +static apr_thread_mutex_t *rng_mutex = NULL;
>>> +
>>> +static void create_rng_mutex(apr_pool_t *pchild, server_rec *s)
>>> +{
>>> +    int threaded_mpm;
>>> +    if (ap_mpm_query(AP_MPMQ_IS_THREADED, &threaded_mpm) !=
>>> APR_SUCCESS)
>>> +        return;
>>> +    if (threaded_mpm)
>>> +        apr_thread_mutex_create(&rng_mutex,
>>> APR_THREAD_MUTEX_DEFAULT, pchild);
>>
>> Shouldn't we use ap_mutex API here to let the user configure the mutex
>> method?
> 
> This is a thread mutex, ap_mutex is only for proc and global mutexes. I
> don't think it is necessary to be able to choose between the thread
> mutex types (nested, unnested, default).

As always, thanks for the clarification :-)

Regards

RĂ¼diger

Reply via email to