From 0366eb13acd55b5ba676e250366df440776b71d6 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Thu, 4 Apr 2019 10:58:24 +0800 Subject: [PATCH] [Kernel] Fix the critical issue when scheduler not start --- src/scheduler.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/scheduler.c b/src/scheduler.c index 0028c98314..be29d9a7e0 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -884,14 +884,17 @@ void rt_exit_critical(void) level = rt_hw_interrupt_disable(); rt_scheduler_lock_nest --; - if (rt_scheduler_lock_nest <= 0) { rt_scheduler_lock_nest = 0; /* enable interrupt */ rt_hw_interrupt_enable(level); - rt_schedule(); + if (rt_current_thread) + { + /* if scheduler is started, do a schedule */ + rt_schedule(); + } } else {