From: Ulrich Drepper Date: Thu, 16 Mar 2000 21:42:07 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc_2-1-91~882 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ee5cda9b439296ed761c77891dfe2f2f3ab47971;p=thirdparty%2Fglibc.git Update. --- diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index bc71c06a786..d600f27c39d 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,9 +1,3 @@ -2000-03-16 Ulrich Drepper - - * mutex.c (__pthread_mutex_lock): Always initialize __m_owner. - (__pthread_mutex_trylock): Likewise. - (__pthread_mutex_unlock): Always clear __m_owner. - 2000-03-14 Ulrich Drepper * condvar.c (pthread_cond_wait): Check whether mutex is owned by diff --git a/linuxthreads/mutex.c b/linuxthreads/mutex.c index 81a95ce0c18..06d97df03ff 100644 --- a/linuxthreads/mutex.c +++ b/linuxthreads/mutex.c @@ -50,7 +50,6 @@ int __pthread_mutex_trylock(pthread_mutex_t * mutex) switch(mutex->__m_kind) { case PTHREAD_MUTEX_FAST_NP: retcode = __pthread_trylock(&mutex->__m_lock); - mutex->__m_owner = thread_self(); return retcode; case PTHREAD_MUTEX_RECURSIVE_NP: self = thread_self(); @@ -78,12 +77,12 @@ strong_alias (__pthread_mutex_trylock, pthread_mutex_trylock) int __pthread_mutex_lock(pthread_mutex_t * mutex) { - pthread_descr self = thread_self(); + pthread_descr self; switch(mutex->__m_kind) { case PTHREAD_MUTEX_FAST_NP: __pthread_lock(&mutex->__m_lock, NULL); - break; + return 0; case PTHREAD_MUTEX_RECURSIVE_NP: self = thread_self(); if (mutex->__m_owner == self) { @@ -91,18 +90,18 @@ int __pthread_mutex_lock(pthread_mutex_t * mutex) return 0; } __pthread_lock(&mutex->__m_lock, self); + mutex->__m_owner = self; mutex->__m_count = 0; - break; + return 0; case PTHREAD_MUTEX_ERRORCHECK_NP: self = thread_self(); if (mutex->__m_owner == self) return EDEADLK; __pthread_lock(&mutex->__m_lock, self); - break; + mutex->__m_owner = self; + return 0; default: return EINVAL; } - mutex->__m_owner = self; - return 0; } strong_alias (__pthread_mutex_lock, pthread_mutex_lock) @@ -111,7 +110,6 @@ int __pthread_mutex_unlock(pthread_mutex_t * mutex) switch (mutex->__m_kind) { case PTHREAD_MUTEX_FAST_NP: __pthread_unlock(&mutex->__m_lock); - mutex->__m_owner = NULL; return 0; case PTHREAD_MUTEX_RECURSIVE_NP: if (mutex->__m_count > 0) {