Go to the documentation of this file.
12 #ifndef __METAL_CONDITION__H__
13 #error "Include metal/condition.h instead of metal/linux/condition.h"
16 #ifndef __METAL_LINUX_CONDITION__H__
17 #define __METAL_LINUX_CONDITION__H__
20 #include <sys/syscall.h>
21 #include <linux/futex.h>
22 #include <metal/atomic.h>
43 #define METAL_CONDITION_INIT { NULL, ATOMIC_VAR_INIT(0), ATOMIC_VAR_INIT(0) }
59 syscall(SYS_futex, &cv->
wakeups, FUTEX_WAKE, 1, NULL, NULL, 0);
70 syscall(SYS_futex, &cv->
wakeups, FUTEX_WAKE, INT_MAX, NULL, NULL, 0);
#define atomic_fetch_add(OBJ, VAL)
Definition: atomic.h:94
#define atomic_init(OBJ, VAL)
Definition: atomic.h:51
static void metal_condition_init(struct metal_condition *cv)
Definition: condition.h:45
static int metal_condition_signal(struct metal_condition *cv)
Definition: condition.h:52
static int metal_condition_broadcast(struct metal_condition *cv)
Definition: condition.h:63
int atomic_int
Definition: atomic.h:24
#define atomic_load(OBJ)
Definition: atomic.h:59