From 68534b4ed2842d1f8b6fc3a0163b05827aebbfff Mon Sep 17 00:00:00 2001 From: Angoosh Leviocki Date: Wed, 16 Mar 2022 22:37:31 +0100 Subject: [PATCH] bugfix --- Adv_Scheduler.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Adv_Scheduler.c b/Adv_Scheduler.c index e081241..bce3a8f 100644 --- a/Adv_Scheduler.c +++ b/Adv_Scheduler.c @@ -80,7 +80,7 @@ int Adv_Scheduler_Remove_Task(void (*exec)(void *), void *handle){ int Adv_Scheduler_Disable_Task(void (*exec)(void *), void *handle){ for(int task = 0; task < n_o_tasks; task++){ if((tasks[task].exec == exec) && (tasks[task].handle == handle)){ - disabled_tasks += (1 << task); + disabled_tasks |= (1 << task); return 0; } } @@ -112,7 +112,12 @@ void Adv_Scheduler_Update(){ for(int task = 0; task < n_o_tasks; task++){ if((disabled_tasks & (1 << task)) == 0){ if(tasks[task].delay == 0){ - tasks[task].delay = tasks[task].period; + if(tasks[task].period == 0){ + disabled_tasks |= (1 << task); + } + else{ + tasks[task].delay = tasks[task].period; + } tasks[task].run ++; } else{