summaryrefslogtreecommitdiff
path: root/libcr/coroutine.c
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-12-02 22:10:04 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-12-08 08:27:23 -0700
commit92c0baf72135a3ad3c396d0897e8741fc552e490 (patch)
tree2729d2c5fc52551e1bf5fc867c856d3edb7327c0 /libcr/coroutine.c
parent800b986aa729ef27e256184cc04060cf07830413 (diff)
libcr: Pull out a _CR_SIG_SENTINEL
Diffstat (limited to 'libcr/coroutine.c')
-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());