diff options
Diffstat (limited to 'libcr')
-rw-r--r-- | libcr/coroutine.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libcr/coroutine.c b/libcr/coroutine.c index c6e3d4c..3435bbb 100644 --- a/libcr/coroutine.c +++ b/libcr/coroutine.c @@ -151,11 +151,13 @@ /* For a signal to be *in* the mask means that the signal is * *blocked*. */ + #define _CR_SIG_SENTINEL SIGHUP + bool cr_is_in_intrhandler(void) { sigset_t cur_mask; sigfillset(&cur_mask); sigprocmask(0, NULL, &cur_mask); - if (sigismember(&cur_mask, SIGHUP)) + if (sigismember(&cur_mask, _CR_SIG_SENTINEL)) /* Interrupts are disabled, so we cannot be in * an interrupt handler. */ return false; @@ -169,7 +171,7 @@ sigset_t cur_mask; sigfillset(&cur_mask); sigprocmask(0, NULL, &cur_mask); - return !sigismember(&cur_mask, SIGHUP); + return !sigismember(&cur_mask, _CR_SIG_SENTINEL); } static inline void cr_plat_wait_for_interrupt(void) { @@ -187,7 +189,7 @@ sigset_t all, old; sigfillset(&all); sigprocmask(SIG_SETMASK, &all, &old); - return !sigismember(&old, SIGHUP); + return !sigismember(&old, _CR_SIG_SENTINEL); } void _cr_plat_enable_interrupts(void) { assert(!cr_is_in_intrhandler()); |