diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-11-15 00:46:44 -0700 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-11-19 20:15:48 -0700 |
commit | 5e04cdf350f9cede59263b52c2271f7c066439e3 (patch) | |
tree | 9d731c522a5a6d7b1bd49293f0350da1f4e2bd47 /libhw_generic/alarmclock.c | |
parent | 712f71f1a7c6d06ce9f8f011c5d5c03add0e9d72 (diff) |
libcr: Begone with PRE_RUNNABLE
Diffstat (limited to 'libhw_generic/alarmclock.c')
-rw-r--r-- | libhw_generic/alarmclock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libhw_generic/alarmclock.c b/libhw_generic/alarmclock.c index 3364f72..a16f2f6 100644 --- a/libhw_generic/alarmclock.c +++ b/libhw_generic/alarmclock.c @@ -15,7 +15,10 @@ static void alarmclock_sleep_intrhandler(void *_arg) { } void alarmclock_sleep_until_ns(implements_alarmclock *clock, uint64_t abstime_ns) { + bool saved = cr_save_and_disable_interrupts(); cid_t cid = cr_getcid(); struct alarmclock_trigger trigger; VCALL(clock, add_trigger, &trigger, abstime_ns, alarmclock_sleep_intrhandler, &cid); + cr_pause_and_yield(); + cr_restore_interrupts(saved); } |