Skip to content

Commit 9729d79

Browse files
committed
FUT ONGOING
1 parent c9a4102 commit 9729d79

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

ggml.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,32 @@ TODO: find better ? */
115115
#define GGML_THREADPOOL_ACTIVE_POLL
116116

117117
#else
118+
119+
#include <unistd.h>
120+
#include <sys/syscall.h>
121+
#include <linux/futex.h>
122+
123+
124+
static int futex(uint32_t *uaddr, int futex_op, uint32_t val,
125+
const struct timespec *timeout, uint32_t *uaddr2, uint32_t val3)
126+
{
127+
return syscall(SYS_futex, uaddr, futex_op, val, timeout, uaddr2, val3);
128+
}
129+
130+
static inline long futex_wait (uint32_t *addr, int val)
131+
{
132+
return futex (addr, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, val, NULL, NULL, 0);
133+
}
134+
135+
static inline long futex_wake (uint32_t *addr, int count)
136+
{
137+
return futex (addr, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, count, NULL, NULL, 0);
138+
139+
}
140+
141+
142+
143+
118144
#include <pthread.h>
119145
#include <stdatomic.h>
120146

0 commit comments

Comments
 (0)