about summary refs log tree commit diff
path: root/nptl/pthread_mutex_trylock.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/pthread_mutex_trylock.c')
-rw-r--r--nptl/pthread_mutex_trylock.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c
index c61d7d5852..b164e0205e 100644
--- a/nptl/pthread_mutex_trylock.c
+++ b/nptl/pthread_mutex_trylock.c
@@ -26,12 +26,13 @@ int
 __pthread_mutex_trylock (mutex)
      pthread_mutex_t *mutex;
 {
-  struct pthread *id = THREAD_ID;
+  pid_t *id;
 
   switch (__builtin_expect (mutex->__data.__kind, PTHREAD_MUTEX_TIMED_NP))
     {
       /* Recursive mutex.  */
     case PTHREAD_MUTEX_RECURSIVE_NP:
+      id = THREAD_GETMEM (THREAD_SELF, tid);
       /* Check whether we already hold the mutex.  */
       if (mutex->__data.__owner == id)
 	{
@@ -49,6 +50,7 @@ __pthread_mutex_trylock (mutex)
 	  /* Record the ownership.  */
 	  mutex->__data.__owner = id;
 	  mutex->__data.__count = 1;
+	  ++mutex->__data.__nusers;
 	  return 0;
 	}
       break;
@@ -63,7 +65,8 @@ __pthread_mutex_trylock (mutex)
       if (lll_mutex_trylock (mutex->__data.__lock) == 0)
 	{
 	  /* Record the ownership.  */
-	  mutex->__data.__owner = id;
+	  mutex->__data.__owner = THREAD_GETMEM (THREAD_SELF, tid);
+	  ++mutex->__data.__nusers;
 
 	  return 0;
 	}