diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | mutex.c | 5 |
2 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,11 @@ +2001-12-21 Ross Johnson <rpj@special.ise.canberra.edu.au> + + Contributed by - Alexander Terekhov <TEREKHOV@de.ibm.com> + + * mutex.c (pthread_mutex_lock): Decrementing lock_idx was + not thread-safe. + (pthread_mutex_trylock): Likewise. + 2001-10-26 Ross Johnson <rpj@special.ise.canberra.edu.au> Reported by - prionx@juno.com @@ -650,7 +650,7 @@ pthread_mutex_lock(pthread_mutex_t *mutex) if( mx->kind != PTHREAD_MUTEX_FAST_NP && pthread_equal( mx->ownerThread, pthread_self() ) ) { - mx->lock_idx--; + (void) InterlockedDecrement( &mx->lock_idx ); if( mx->kind == PTHREAD_MUTEX_RECURSIVE_NP ) { @@ -766,7 +766,7 @@ pthread_mutex_trylock(pthread_mutex_t *mutex) } else { - mx->lock_idx--; + (void) InterlockedDecrement( &mx->lock_idx ); result = EBUSY; } @@ -780,3 +780,4 @@ pthread_mutex_trylock(pthread_mutex_t *mutex) return(result); } + |