mirror of git://sourceware.org/git/glibc.git
(FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
(lll_futex_wake_unlock): Define.
This commit is contained in:
parent
e582e2ddcf
commit
eb4e0abb40
|
@ -31,6 +31,8 @@
|
||||||
#define FUTEX_WAKE 1
|
#define FUTEX_WAKE 1
|
||||||
#define FUTEX_REQUEUE 3
|
#define FUTEX_REQUEUE 3
|
||||||
#define FUTEX_CMP_REQUEUE 4
|
#define FUTEX_CMP_REQUEUE 4
|
||||||
|
#define FUTEX_WAKE_OP 5
|
||||||
|
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
||||||
|
|
||||||
/* Initializer for compatibility lock. */
|
/* Initializer for compatibility lock. */
|
||||||
#define LLL_MUTEX_LOCK_INITIALIZER (0)
|
#define LLL_MUTEX_LOCK_INITIALIZER (0)
|
||||||
|
@ -73,6 +75,20 @@
|
||||||
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/* Returns non-zero if error happened, zero if success. */
|
||||||
|
#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2) \
|
||||||
|
({ \
|
||||||
|
INTERNAL_SYSCALL_DECL (__err); \
|
||||||
|
long int __ret; \
|
||||||
|
__ret = INTERNAL_SYSCALL (futex, __err, 6, \
|
||||||
|
(futexp), FUTEX_WAKE_OP, (nr_wake), \
|
||||||
|
(nr_wake2), (futexp2), \
|
||||||
|
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
|
||||||
|
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static inline int __attribute__((always_inline))
|
static inline int __attribute__((always_inline))
|
||||||
__lll_mutex_trylock(int *futex)
|
__lll_mutex_trylock(int *futex)
|
||||||
|
|
Loading…
Reference in New Issue