summaryrefslogtreecommitdiff
path: root/libhw/host_alarmclock.c
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-11-15 00:46:44 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-11-19 20:15:48 -0700
commit5e04cdf350f9cede59263b52c2271f7c066439e3 (patch)
tree9d731c522a5a6d7b1bd49293f0350da1f4e2bd47 /libhw/host_alarmclock.c
parent712f71f1a7c6d06ce9f8f011c5d5c03add0e9d72 (diff)
libcr: Begone with PRE_RUNNABLE
Diffstat (limited to 'libhw/host_alarmclock.c')
-rw-r--r--libhw/host_alarmclock.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libhw/host_alarmclock.c b/libhw/host_alarmclock.c
index 4f43fc7..1d26f1a 100644
--- a/libhw/host_alarmclock.c
+++ b/libhw/host_alarmclock.c
@@ -110,7 +110,7 @@ static bool hostclock_add_trigger(implements_alarmclock *_alarmclock,
trigger->cb = cb;
trigger->cb_arg = cb_arg;
- cr_disable_interrupts();
+ bool saved = cr_save_and_disable_interrupts();
struct alarmclock_trigger **dst = &alarmclock->queue;
while (*dst && fire_at_ns >= (*dst)->fire_at_ns)
dst = &(*dst)->next;
@@ -145,7 +145,7 @@ static bool hostclock_add_trigger(implements_alarmclock *_alarmclock,
if (timer_settime(alarmclock->timer_id, TIMER_ABSTIME, &alarmspec, NULL) != 0)
error(1, errno, "timer_settime");
}
- cr_enable_interrupts();
+ cr_restore_interrupts(saved);
return false;
}
@@ -158,7 +158,7 @@ static void hostclock_del_trigger(implements_alarmclock *_alarmclock,
assert(alarmclock);
assert(trigger);
- cr_disable_interrupts();
+ bool saved = cr_save_and_disable_interrupts();
if (trigger->alarmclock == alarmclock) {
if (!trigger->prev)
alarmclock->queue = trigger->next;
@@ -170,5 +170,5 @@ static void hostclock_del_trigger(implements_alarmclock *_alarmclock,
trigger->prev = NULL;
trigger->next = NULL;
}
- cr_enable_interrupts();
+ cr_restore_interrupts(saved);
}