From 4104962dfc897f51f0b6e7bfabd2e9766085400e Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 22 Dec 2024 17:17:38 -0800 Subject: pollers: use atomic bit masking operations to eliminate lockss This is done for kqueue and poll. Others coming soon. --- src/platform/windows/win_thread.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/platform/windows') diff --git a/src/platform/windows/win_thread.c b/src/platform/windows/win_thread.c index 9e74056d..c76209c1 100644 --- a/src/platform/windows/win_thread.c +++ b/src/platform/windows/win_thread.c @@ -325,6 +325,18 @@ nni_atomic_init(nni_atomic_int *v) InterlockedExchange(&v->v, 0); } +int +nni_atomic_or(nni_atomic_int *v, int mask) +{ + return (InterlockedOr(&v->v, mask)); +} + +int +nni_atomic_and(nni_atomic_int *v, int mask) +{ + return (InterlockedAnd(&v->v, mask)); +} + void nni_atomic_inc(nni_atomic_int *v) { -- cgit v1.2.3-70-g09d2