summaryrefslogtreecommitdiff
path: root/src/kernel/ao_task.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/ao_task.c')
-rw-r--r--src/kernel/ao_task.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/kernel/ao_task.c b/src/kernel/ao_task.c
index e430edc6..03d69caa 100644
--- a/src/kernel/ao_task.c
+++ b/src/kernel/ao_task.c
@@ -165,13 +165,14 @@ ao_task_check_alarm(uint16_t tick)
{
struct ao_task *alarm, *next;
- ao_list_for_each_entry_safe(alarm, next, &alarm_queue, struct ao_task, alarm_queue) {
- if ((int16_t) (tick - alarm->alarm) < 0)
- break;
- alarm->alarm = 0;
- ao_task_from_alarm_queue(alarm);
- ao_task_to_run_queue(alarm);
- }
+ ao_arch_critical(
+ ao_list_for_each_entry_safe(alarm, next, &alarm_queue, struct ao_task, alarm_queue) {
+ if ((int16_t) (tick - alarm->alarm) < 0)
+ break;
+ alarm->alarm = 0;
+ ao_task_from_alarm_queue(alarm);
+ ao_task_to_run_queue(alarm);
+ });
}
void