Lines Matching refs:mutex
26 ___pthread_mutex_trylock (pthread_mutex_t *mutex) in ___pthread_mutex_trylock() argument
33 switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex), in ___pthread_mutex_trylock()
40 if (mutex->__data.__owner == id) in ___pthread_mutex_trylock()
43 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in ___pthread_mutex_trylock()
47 ++mutex->__data.__count; in ___pthread_mutex_trylock()
51 if (lll_trylock (mutex->__data.__lock) == 0) in ___pthread_mutex_trylock()
54 mutex->__data.__owner = id; in ___pthread_mutex_trylock()
55 mutex->__data.__count = 1; in ___pthread_mutex_trylock()
56 ++mutex->__data.__nusers; in ___pthread_mutex_trylock()
63 if (lll_trylock_elision (mutex->__data.__lock, in ___pthread_mutex_trylock()
64 mutex->__data.__elision) != 0) in ___pthread_mutex_trylock()
70 FORCE_ELISION (mutex, goto elision); in ___pthread_mutex_trylock()
74 if (lll_trylock (mutex->__data.__lock) != 0) in ___pthread_mutex_trylock()
78 mutex->__data.__owner = id; in ___pthread_mutex_trylock()
79 ++mutex->__data.__nusers; in ___pthread_mutex_trylock()
88 &mutex->__data.__list.__next); in ___pthread_mutex_trylock()
93 oldval = mutex->__data.__lock; in ___pthread_mutex_trylock()
103 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in ___pthread_mutex_trylock()
113 mutex->__data.__count = 1; in ___pthread_mutex_trylock()
115 mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT; in ___pthread_mutex_trylock()
120 ENQUEUE_MUTEX (mutex); in ___pthread_mutex_trylock()
135 int kind = PTHREAD_MUTEX_TYPE (mutex); in ___pthread_mutex_trylock()
153 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in ___pthread_mutex_trylock()
157 ++mutex->__data.__count; in ___pthread_mutex_trylock()
163 oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in ___pthread_mutex_trylock()
175 if (__builtin_expect (mutex->__data.__owner in ___pthread_mutex_trylock()
179 mutex->__data.__count = 0; in ___pthread_mutex_trylock()
181 lll_unlock (mutex->__data.__lock, in ___pthread_mutex_trylock()
182 PTHREAD_ROBUST_MUTEX_PSHARED (mutex)); in ___pthread_mutex_trylock()
194 ENQUEUE_MUTEX (mutex); in ___pthread_mutex_trylock()
199 mutex->__data.__owner = id; in ___pthread_mutex_trylock()
200 ++mutex->__data.__nusers; in ___pthread_mutex_trylock()
201 mutex->__data.__count = 1; in ___pthread_mutex_trylock()
222 int mutex_kind = atomic_load_relaxed (&(mutex->__data.__kind)); in ___pthread_mutex_trylock()
231 (void *) (((uintptr_t) &mutex->__data.__list.__next) in ___pthread_mutex_trylock()
238 oldval = mutex->__data.__lock; in ___pthread_mutex_trylock()
258 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in ___pthread_mutex_trylock()
262 ++mutex->__data.__count; in ___pthread_mutex_trylock()
269 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in ___pthread_mutex_trylock()
289 ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex) in ___pthread_mutex_trylock()
290 : PTHREAD_MUTEX_PSHARED (mutex)); in ___pthread_mutex_trylock()
291 int e = INTERNAL_SYSCALL_CALL (futex, &mutex->__data.__lock, in ___pthread_mutex_trylock()
306 oldval = mutex->__data.__lock; in ___pthread_mutex_trylock()
311 atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED); in ___pthread_mutex_trylock()
314 mutex->__data.__count = 1; in ___pthread_mutex_trylock()
316 mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT; in ___pthread_mutex_trylock()
321 ENQUEUE_MUTEX (mutex); in ___pthread_mutex_trylock()
334 && __builtin_expect (mutex->__data.__owner in ___pthread_mutex_trylock()
338 mutex->__data.__count = 0; in ___pthread_mutex_trylock()
340 futex_unlock_pi ((unsigned int *) &mutex->__data.__lock, in ___pthread_mutex_trylock()
341 PTHREAD_ROBUST_MUTEX_PSHARED (mutex)); in ___pthread_mutex_trylock()
354 ENQUEUE_MUTEX_PI (mutex); in ___pthread_mutex_trylock()
360 mutex->__data.__owner = id; in ___pthread_mutex_trylock()
361 ++mutex->__data.__nusers; in ___pthread_mutex_trylock()
362 mutex->__data.__count = 1; in ___pthread_mutex_trylock()
375 int kind = atomic_load_relaxed (&(mutex->__data.__kind)) in ___pthread_mutex_trylock()
378 oldval = mutex->__data.__lock; in ___pthread_mutex_trylock()
381 if (mutex->__data.__owner == id) in ___pthread_mutex_trylock()
389 if (__glibc_unlikely (mutex->__data.__count + 1 == 0)) in ___pthread_mutex_trylock()
393 ++mutex->__data.__count; in ___pthread_mutex_trylock()
420 = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock, in ___pthread_mutex_trylock()
434 assert (mutex->__data.__owner == 0); in ___pthread_mutex_trylock()
436 mutex->__data.__owner = id; in ___pthread_mutex_trylock()
437 ++mutex->__data.__nusers; in ___pthread_mutex_trylock()
438 mutex->__data.__count = 1; in ___pthread_mutex_trylock()