summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/scheduler.c7
1 files 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
{