From 4ecadfabf42b380ea8f154990a91711c989ab629 Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Thu, 24 Aug 2023 08:00:26 -0500 Subject: [PATCH] Fix atomics - warnings on windows --- src/core/ev.c | 10 +++++++++- src/core/os.c | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/ev.c b/src/core/ev.c index 38fc42e1..f2edb205 100644 --- a/src/core/ev.c +++ b/src/core/ev.c @@ -632,7 +632,11 @@ void janet_addtimeout(double sec) { void janet_ev_inc_refcount(void) { #ifdef JANET_WINDOWS +#ifdef JANET_64 + InterlockedIncrement64(&janet_vm.extra_listeners); +#else InterlockedIncrement(&janet_vm.extra_listeners); +#endif #else __atomic_add_fetch(&janet_vm.extra_listeners, 1, __ATOMIC_RELAXED); #endif @@ -640,7 +644,11 @@ void janet_ev_inc_refcount(void) { void janet_ev_dec_refcount(void) { #ifdef JANET_WINDOWS +#ifdef JANET_64 + InterlockedDecrement64(&janet_vm.extra_listeners); +#else InterlockedDecrement(&janet_vm.extra_listeners); +#endif #else __atomic_add_fetch(&janet_vm.extra_listeners, -1, __ATOMIC_RELAXED); #endif @@ -1377,7 +1385,7 @@ JanetFiber *janet_loop1(void) { } else if (sig == JANET_SIGNAL_OK || (task.fiber->flags & (1 << sig))) { JanetChannel *chan = janet_channel_unwrap(sv); janet_channel_push(chan, make_supervisor_event(janet_signal_names[sig], - task.fiber, chan->is_threaded), 2); + task.fiber, chan->is_threaded), 2); } else if (!is_suspended) { janet_stacktrace_ext(task.fiber, res, ""); } diff --git a/src/core/os.c b/src/core/os.c index 3038ab79..1fcd2102 100644 --- a/src/core/os.c +++ b/src/core/os.c @@ -857,6 +857,7 @@ JANET_CORE_FN(os_sigaction, janet_sandbox_assert(JANET_SANDBOX_SIGNAL); janet_arity(argc, 1, 3); #ifdef JANET_WINDOWS + (void) argv; janet_panic("unsupported on this platform"); #else /* TODO - per thread signal masks */