Lines Matching refs:g
78 __condvar_cancel_waiting (pthread_cond_t *cond, uint64_t seq, unsigned int g, in __condvar_cancel_waiting() argument
101 if (cond->__data.__g_size[g] + __PTHREAD_COND_MAX_GROUP_SIZE > 0) in __condvar_cancel_waiting()
103 cond->__data.__g_size[g]--; in __condvar_cancel_waiting()
119 if (cond->__data.__g_size[g] == 0) in __condvar_cancel_waiting()
129 cond->__data.__g_size[g]--; in __condvar_cancel_waiting()
148 __condvar_dec_grefs (pthread_cond_t *cond, unsigned int g, int private) in __condvar_dec_grefs() argument
152 if (atomic_fetch_add_release (cond->__data.__g_refs + g, -2) == 3) in __condvar_dec_grefs()
158 atomic_fetch_and_relaxed (cond->__data.__g_refs + g, ~(unsigned int) 1); in __condvar_dec_grefs()
159 futex_wake (cond->__data.__g_refs + g, INT_MAX, private); in __condvar_dec_grefs()
172 unsigned g = cbuffer->wseq & 1; in __condvar_cleanup_waiting() local
174 __condvar_dec_grefs (cond, g, cbuffer->private); in __condvar_cleanup_waiting()
176 __condvar_cancel_waiting (cond, cbuffer->wseq >> 1, g, cbuffer->private); in __condvar_cleanup_waiting()
183 futex_wake (cond->__data.__g_signals + g, 1, cbuffer->private); in __condvar_cleanup_waiting()
404 unsigned int g = wseq & 1; in __pthread_cond_wait_common() local
422 __condvar_cancel_waiting (cond, seq, g, private); in __pthread_cond_wait_common()
432 unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g); in __pthread_cond_wait_common()
459 signals = atomic_load_acquire (cond->__data.__g_signals + g); in __pthread_cond_wait_common()
484 atomic_fetch_add_acquire (cond->__data.__g_refs + g, 2); in __pthread_cond_wait_common()
485 if (((atomic_load_acquire (cond->__data.__g_signals + g) & 1) != 0) in __pthread_cond_wait_common()
490 __condvar_dec_grefs (cond, g, private); in __pthread_cond_wait_common()
504 cond->__data.__g_signals + g, 0, clockid, abstime, private); in __pthread_cond_wait_common()
510 __condvar_dec_grefs (cond, g, private); in __pthread_cond_wait_common()
516 __condvar_cancel_waiting (cond, seq, g, private); in __pthread_cond_wait_common()
521 __condvar_dec_grefs (cond, g, private); in __pthread_cond_wait_common()
524 signals = atomic_load_acquire (cond->__data.__g_signals + g); in __pthread_cond_wait_common()
532 while (!atomic_compare_exchange_weak_acquire (cond->__data.__g_signals + g, in __pthread_cond_wait_common()
558 if (((g1_start & 1) ^ 1) == g) in __pthread_cond_wait_common()
571 unsigned int s = atomic_load_relaxed (cond->__data.__g_signals + g); in __pthread_cond_wait_common()
580 (cond->__data.__g_signals + g, &s, s + 2)) in __pthread_cond_wait_common()
590 futex_wake (cond->__data.__g_signals + g, 1, private); in __pthread_cond_wait_common()