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);  } + | 
