Lines Matching refs:futex
29 // We should really include <futex.h>, but that causes compatibility problems on
33 // define the constants here and don't include <futex.h>
302 /* futex locks */
304 // futex locks are really just test and set locks, with a different method
337 &(lck->lk.poll), KMP_LOCK_FREE(futex),
338 KMP_LOCK_BUSY(gtid_code, futex))) != KMP_LOCK_FREE(futex)) {
356 poll_val | KMP_LOCK_BUSY(1, futex))) {
363 poll_val |= KMP_LOCK_BUSY(1, futex);
387 // This thread has now done a successful futex wait call and was entered on
388 // the OS futex queue. We must now perform a futex wake call when releasing
419 if (KMP_COMPARE_AND_STORE_ACQ32(&(lck->lk.poll), KMP_LOCK_FREE(futex),
420 KMP_LOCK_BUSY((gtid + 1) << 1, futex))) {
446 kmp_int32 poll_val = KMP_XCHG_FIXED32(&(lck->lk.poll), KMP_LOCK_FREE(futex));
456 syscall(__NR_futex, &(lck->lk.poll), FUTEX_WAKE, KMP_LOCK_BUSY(1, futex),
488 TCW_4(lck->lk.poll, KMP_LOCK_FREE(futex));
505 // nested futex locks
3511 KMP_BIND_USER_LOCK_WITH_CHECKS(futex);
3512 KMP_BIND_NESTED_USER_LOCK_WITH_CHECKS(futex);
3514 KMP_BIND_USER_LOCK(futex);
3515 KMP_BIND_NESTED_USER_LOCK(futex);