diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/scheduler.c | 7 |
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 { |
