From 21ad1679f79fc15b20d373e32e48d12043e584ef Mon Sep 17 00:00:00 2001 From: Adam Pippin Date: Sat, 18 Apr 2020 13:46:44 -0700 Subject: [PATCH] Add REDRAW signal to Kernel --- Kernel.cpp | 12 +++++++----- Kernel.h | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Kernel.cpp b/Kernel.cpp index d0b2816..b3003c9 100644 --- a/Kernel.cpp +++ b/Kernel.cpp @@ -28,7 +28,6 @@ void Kernel_setup() { last_tick_start = millis(); last_tick_duration = 0; - //Serial.begin(115200); } void Kernel_start(int (*callback)(int, unsigned int), unsigned long interval) @@ -223,10 +222,13 @@ void Kernel_tick() // If the process has any non-masked signals pending, run it if ((tasks[i].signal & tasks[i].signal_mask) != 0) { - // Run the task - int task_return = (*tasks[i].callback)(tasks[i].pid, tasks[i].signal); - // Reset the signal + + unsigned int signals = tasks[i].signal; tasks[i].signal = SIGNAL_NONE; + + // Run the task + int task_return = (*tasks[i].callback)(tasks[i].pid, signals); + // If the tasks's return value was non-zero, it has exited. if (task_return != 0) @@ -263,7 +265,7 @@ void Kernel_tick() bool signals_pending = false; for (int i=0; i