[PATCH] Fix problem with sasl_set_mutex

Alexey Melnikov alexey.melnikov at isode.com
Fri Sep 26 07:33:09 EDT 2008


Nicolas Williams wrote:

>On Sat, Sep 20, 2008 at 02:41:41PM +0200, Eric Leblond wrote:
>  
>
>>Index: lib/common.c
>>===================================================================
>>RCS file: /cvs/src/sasl/lib/common.c,v
>>retrieving revision 1.116
>>diff -r1.116 common.c
>>154a155,161
>>    
>>
>>>  /* only one call is permitted, if one of the function has already
>>>   * been changed we are in trouble in a subsequent call */
>>>  if ((_sasl_mutex_utils.alloc != &sasl_mutex_alloc) ||
>>>  	(_sasl_mutex_utils.lock != &sasl_mutex_lock) ||
>>>	(_sasl_mutex_utils.unlock != &sasl_mutex_unlock) ||
>>>	(_sasl_mutex_utils.free != &sasl_mutex_free))
>>>     return;
>>>      
>>>
>Is there a need for a memory barrier?  (A unified diff might have shown
>enough context that I could tell.)
>
>http://docs.sun.com/app/docs/doc/816-5168/membar-ops-3c?a=view
>http://www.daemon-systems.org/man/membar_ops.3.html
>(libatomic-ops for Linux?)
>  
>
If we can do this is a crossplatform way (including Windows), that would 
be helpful.

However sasl_set_mutex is not supposed to be called from multiple 
threads (it is supposed to be called before the application starts 
creating threads), so I wouldn't worry too much about this.



More information about the Cyrus-sasl mailing list