diff options
Diffstat (limited to 'nptl/pthread_mutex_timedlock.c')
| -rw-r--r-- | nptl/pthread_mutex_timedlock.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index 138cdcc985..598c6a0710 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -42,11 +42,10 @@ __pthread_mutex_clocklock_common (pthread_mutex_t *mutex, /* See concurrency notes regarding mutex type which is loaded from __kind in struct __pthread_mutex_s in sysdeps/nptl/bits/thread-shared-types.h. */ - switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex), + switch (__builtin_expect (PTHREAD_MUTEX_TYPE (mutex), PTHREAD_MUTEX_TIMED_NP)) { /* Recursive mutex. */ - case PTHREAD_MUTEX_RECURSIVE_NP|PTHREAD_MUTEX_ELISION_NP: case PTHREAD_MUTEX_RECURSIVE_NP: /* Check whether we already hold the mutex. */ if (mutex->__data.__owner == id) @@ -78,26 +77,14 @@ __pthread_mutex_clocklock_common (pthread_mutex_t *mutex, if (__glibc_unlikely (mutex->__data.__owner == id)) return EDEADLK; - /* Don't do lock elision on an error checking mutex. */ - goto simple; + /* FALLTHROUGH */ case PTHREAD_MUTEX_TIMED_NP: - FORCE_ELISION (mutex, goto elision); - simple: /* Normal mutex. */ result = __futex_clocklock64 (&mutex->__data.__lock, clockid, abstime, PTHREAD_MUTEX_PSHARED (mutex)); break; - case PTHREAD_MUTEX_TIMED_ELISION_NP: - elision: __attribute__((unused)) - /* Don't record ownership */ - return lll_clocklock_elision (mutex->__data.__lock, - mutex->__data.__spins, - clockid, abstime, - PTHREAD_MUTEX_PSHARED (mutex)); - - case PTHREAD_MUTEX_ADAPTIVE_NP: if (lll_trylock (mutex->__data.__lock) != 0) { |
