diff options
Diffstat (limited to 'nptl/sysdeps/pthread/pthread_rwlock_wrlock.c')
-rw-r--r-- | nptl/sysdeps/pthread/pthread_rwlock_wrlock.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c b/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c index 171a14adb1..822aeed79c 100644 --- a/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c +++ b/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c @@ -40,15 +40,14 @@ __pthread_rwlock_wrlock (rwlock) if (rwlock->__data.__writer == 0 && rwlock->__data.__nr_readers == 0) { /* Mark self as writer. */ - rwlock->__data.__writer = (pthread_t) THREAD_ID; + rwlock->__data.__writer = THREAD_GETMEM (THREAD_SELF, tid); break; } /* Make sure we are not holding the rwlock as a writer. This is a deadlock situation we recognize and report. */ - if (rwlock->__data.__writer != 0 - && __builtin_expect (rwlock->__data.__writer - == (pthread_t) THREAD_ID, 0)) + if (__builtin_expect (rwlock->__data.__writer + == THREAD_GETMEM (THREAD_SELF, tid), 0)) { result = EDEADLK; break; |