1
0
mirror of https://github.com/janet-lang/janet synced 2025-10-31 07:33:01 +00:00

Try to use atomics inside signal handler for ref count.

This commit is contained in:
Calvin Rose
2023-08-20 08:49:49 -05:00
parent 91712add3d
commit ca4c1e4259
2 changed files with 11 additions and 3 deletions

View File

@@ -603,11 +603,19 @@ void janet_addtimeout(double sec) {
}
void janet_ev_inc_refcount(void) {
janet_vm.extra_listeners++;
#ifdef JANET_WINDOWS
InterlockedIncrement(&janet_vm.extra_listeners);
#else
__atomic_add_fetch(&janet_vm.extra_listeners, 1, __ATOMIC_RELAXED);
#endif
}
void janet_ev_dec_refcount(void) {
janet_vm.extra_listeners--;
#ifdef JANET_WINDOWS
InterlockedDecrement(&janet_vm.extra_listeners);
#else
__atomic_add_fetch(&janet_vm.extra_listeners, -1, __ATOMIC_RELAXED);
#endif
}
/* Channels */