[Kernel] Fix the critical issue when scheduler not start
This commit is contained in:
parent
d517389e52
commit
0366eb13ac
|
@ -884,15 +884,18 @@ void rt_exit_critical(void)
|
||||||
level = rt_hw_interrupt_disable();
|
level = rt_hw_interrupt_disable();
|
||||||
|
|
||||||
rt_scheduler_lock_nest --;
|
rt_scheduler_lock_nest --;
|
||||||
|
|
||||||
if (rt_scheduler_lock_nest <= 0)
|
if (rt_scheduler_lock_nest <= 0)
|
||||||
{
|
{
|
||||||
rt_scheduler_lock_nest = 0;
|
rt_scheduler_lock_nest = 0;
|
||||||
/* enable interrupt */
|
/* enable interrupt */
|
||||||
rt_hw_interrupt_enable(level);
|
rt_hw_interrupt_enable(level);
|
||||||
|
|
||||||
|
if (rt_current_thread)
|
||||||
|
{
|
||||||
|
/* if scheduler is started, do a schedule */
|
||||||
rt_schedule();
|
rt_schedule();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* enable interrupt */
|
/* enable interrupt */
|
||||||
|
|
Loading…
Reference in New Issue