It seems to me that that's true. We should have the read/write to m->val within a critical section, otherwise this will be susceptible to race conditions. From: Cyrus-sasl <cyrus-sasl-bounces+ddas=hortonworks.com@xxxxxxxxxxxxxxxxxxxx> on behalf of Ted Yu <yuzhihong@xxxxxxxxx>
Sent: Sunday, April 16, 2017 3:38 AM To: W. Michael Petullo Cc: cyrus-sasl@xxxxxxxxxxxxxxxxxxxx Subject: mutex_lock function and sasl_set_mutex Hi,
Looking at sasl_set_mutex function shown in cyrus-sasl-2.1.26/utils/testsuite.c :
int my_mutex_lock(my_mutex_t *m)
{
if (m->val != 0)
{
fatal("Trying to lock a mutex already locked [single-threaded app]");
}
Wouldn't calling pthread_mutex_lock() better handle concurrent invocations of the mutex lock function ?
Thanks
|