summaryrefslogtreecommitdiff
path: root/libcr
diff options
context:
space:
mode:
Diffstat (limited to 'libcr')
-rw-r--r--libcr/coroutine.c8
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());