From 1dd3b34b9117d4686a131047afc381ba15b8aac3 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Fri, 15 Nov 2024 20:33:41 -0700 Subject: libcr: Use SIG_SETMASK instead of SIG_(UN)BLOCK --- libcr/coroutine.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libcr/coroutine.c b/libcr/coroutine.c index 205d0bb..7f61e94 100644 --- a/libcr/coroutine.c +++ b/libcr/coroutine.c @@ -161,15 +161,17 @@ static inline void cr_plat_wait_for_interrupt(void) { pause(); } + /* For a signal to be *in* the mask means that the signal is + * *blocked*. */ void _cr_plat_disable_interrupts(void) { sigset_t all; sigfillset(&all); - sigprocmask(SIG_BLOCK, &all, NULL); + sigprocmask(SIG_SETMASK, &all, NULL); } void _cr_plat_enable_interrupts(void) { - sigset_t all; - sigfillset(&all); - sigprocmask(SIG_UNBLOCK, &all, NULL); + sigset_t zero; + sigemptyset(&zero); + sigprocmask(SIG_SETMASK, &zero, NULL); } #elif __arm__ /* Assume bare-metal if !__unix__. */ -- cgit v1.2.3-2-g168b