Lines Matching refs:mutex
32 __pthread_mutex_clocklock_common (pthread_mutex_t *mutex, in __pthread_mutex_clocklock_common() argument
45 switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex), in __pthread_mutex_clocklock_common()
52 if (mutex->__data.__owner == id) in __pthread_mutex_clocklock_common()
55 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in __pthread_mutex_clocklock_common()
59 ++mutex->__data.__count; in __pthread_mutex_clocklock_common()
65 result = __futex_clocklock64 (&mutex->__data.__lock, clockid, abstime, in __pthread_mutex_clocklock_common()
66 PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
72 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
78 if (__glibc_unlikely (mutex->__data.__owner == id)) in __pthread_mutex_clocklock_common()
85 FORCE_ELISION (mutex, goto elision); in __pthread_mutex_clocklock_common()
88 result = __futex_clocklock64 (&mutex->__data.__lock, clockid, abstime, in __pthread_mutex_clocklock_common()
89 PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
95 return lll_clocklock_elision (mutex->__data.__lock, in __pthread_mutex_clocklock_common()
96 mutex->__data.__spins, in __pthread_mutex_clocklock_common()
98 PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
102 if (lll_trylock (mutex->__data.__lock) != 0) in __pthread_mutex_clocklock_common()
106 mutex->__data.__spins * 2 + 10); in __pthread_mutex_clocklock_common()
111 result = __futex_clocklock64 (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
113 PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
118 while (lll_trylock (mutex->__data.__lock) != 0); in __pthread_mutex_clocklock_common()
120 mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8; in __pthread_mutex_clocklock_common()
129 &mutex->__data.__list.__next); in __pthread_mutex_clocklock_common()
134 oldval = mutex->__data.__lock; in __pthread_mutex_clocklock_common()
147 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
160 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
169 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
171 mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT; in __pthread_mutex_clocklock_common()
176 ENQUEUE_MUTEX (mutex); in __pthread_mutex_clocklock_common()
191 int kind = PTHREAD_MUTEX_TYPE (mutex); in __pthread_mutex_clocklock_common()
209 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in __pthread_mutex_clocklock_common()
213 ++mutex->__data.__count; in __pthread_mutex_clocklock_common()
215 LIBC_PROBE (mutex_timedlock_acquired, 1, mutex); in __pthread_mutex_clocklock_common()
237 (&mutex->__data.__lock, oldval | FUTEX_WAITERS, oldval); in __pthread_mutex_clocklock_common()
254 (unsigned int *) &mutex->__data.__lock, in __pthread_mutex_clocklock_common()
256 PTHREAD_ROBUST_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
261 oldval = mutex->__data.__lock; in __pthread_mutex_clocklock_common()
265 if (__builtin_expect (mutex->__data.__owner in __pthread_mutex_clocklock_common()
269 mutex->__data.__count = 0; in __pthread_mutex_clocklock_common()
270 int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex); in __pthread_mutex_clocklock_common()
271 lll_unlock (mutex->__data.__lock, private); in __pthread_mutex_clocklock_common()
278 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
282 ENQUEUE_MUTEX (mutex); in __pthread_mutex_clocklock_common()
305 int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); in __pthread_mutex_clocklock_common()
314 (void *) (((uintptr_t) &mutex->__data.__list.__next) in __pthread_mutex_clocklock_common()
321 oldval = mutex->__data.__lock; in __pthread_mutex_clocklock_common()
341 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in __pthread_mutex_clocklock_common()
345 ++mutex->__data.__count; in __pthread_mutex_clocklock_common()
347 LIBC_PROBE (mutex_timedlock_acquired, 1, mutex); in __pthread_mutex_clocklock_common()
353 oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
362 ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex) in __pthread_mutex_clocklock_common()
363 : PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
364 int e = __futex_lock_pi64 (&mutex->__data.__lock, clockid, abstime, in __pthread_mutex_clocklock_common()
388 oldval = mutex->__data.__lock; in __pthread_mutex_clocklock_common()
395 atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); in __pthread_mutex_clocklock_common()
398 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
400 mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT; in __pthread_mutex_clocklock_common()
405 ENQUEUE_MUTEX_PI (mutex); in __pthread_mutex_clocklock_common()
418 && __builtin_expect (mutex->__data.__owner in __pthread_mutex_clocklock_common()
422 mutex->__data.__count = 0; in __pthread_mutex_clocklock_common()
424 futex_unlock_pi ((unsigned int *) &mutex->__data.__lock, in __pthread_mutex_clocklock_common()
425 PTHREAD_ROBUST_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
433 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
439 ENQUEUE_MUTEX_PI (mutex); in __pthread_mutex_clocklock_common()
455 int kind = atomic_load_relaxed (&(mutex->__data.__kind)) in __pthread_mutex_clocklock_common()
458 oldval = mutex->__data.__lock; in __pthread_mutex_clocklock_common()
461 if (mutex->__data.__owner == id) in __pthread_mutex_clocklock_common()
469 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in __pthread_mutex_clocklock_common()
473 ++mutex->__data.__count; in __pthread_mutex_clocklock_common()
475 LIBC_PROBE (mutex_timedlock_acquired, 1, mutex); in __pthread_mutex_clocklock_common()
504 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
513 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
530 (unsigned int *) &mutex->__data.__lock, ceilval | 2, in __pthread_mutex_clocklock_common()
531 clockid, abstime, PTHREAD_MUTEX_PSHARED (mutex)); in __pthread_mutex_clocklock_common()
536 while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in __pthread_mutex_clocklock_common()
542 assert (mutex->__data.__owner == 0); in __pthread_mutex_clocklock_common()
543 mutex->__data.__count = 1; in __pthread_mutex_clocklock_common()
555 mutex->__data.__owner = id; in __pthread_mutex_clocklock_common()
556 ++mutex->__data.__nusers; in __pthread_mutex_clocklock_common()
558 LIBC_PROBE (mutex_timedlock_acquired, 1, mutex); in __pthread_mutex_clocklock_common()
566 ___pthread_mutex_clocklock64 (pthread_mutex_t *mutex, in ___pthread_mutex_clocklock64() argument
573 LIBC_PROBE (mutex_clocklock_entry, 3, mutex, clockid, abstime); in ___pthread_mutex_clocklock64()
574 return __pthread_mutex_clocklock_common (mutex, clockid, abstime); in ___pthread_mutex_clocklock64()
584 ___pthread_mutex_clocklock (pthread_mutex_t *mutex,
590 return ___pthread_mutex_clocklock64 (mutex, clockid, &ts64);
605 ___pthread_mutex_timedlock64 (pthread_mutex_t *mutex, in ___pthread_mutex_timedlock64() argument
608 LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime); in ___pthread_mutex_timedlock64()
609 return __pthread_mutex_clocklock_common (mutex, CLOCK_REALTIME, abstime); in ___pthread_mutex_timedlock64()
619 ___pthread_mutex_timedlock (pthread_mutex_t *mutex,
624 return __pthread_mutex_timedlock64 (mutex, &ts64);