[Kernel] Fix the critical issue when scheduler not start
@@ -884,15 +884,18 @@ 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);
+ if (rt_current_thread)
+ {
+ /* if scheduler is started, do a schedule */
rt_schedule();
}
+ }
else
{
/* enable interrupt */
