修正相同优先级任务切换太频繁的问题

This commit is contained in:
shaojinchun
2019-10-12 10:51:47 +08:00
parent 413fcba30a
commit 234af6aaa2
4 changed files with 19 additions and 0 deletions
+15
View File
@@ -344,8 +344,13 @@ void rt_schedule(void)
{
to_thread = current_thread;
}
else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == 0)
{
to_thread = current_thread;
}
else
{
current_thread->can_yield = 0;
rt_schedule_insert_thread(current_thread);
}
}
@@ -435,8 +440,13 @@ void rt_schedule(void)
{
to_thread = rt_current_thread;
}
else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == 0)
{
to_thread = current_thread;
}
else
{
current_thread->can_yield = 0;
need_insert_from_thread = 1;
}
}
@@ -578,8 +588,13 @@ void rt_scheduler_do_irq_switch(void *context)
{
to_thread = current_thread;
}
else if (current_thread->current_priority == highest_ready_priority && current_thread->can_yield == 0)
{
to_thread = current_thread;
}
else
{
current_thread->can_yield = 0;
rt_schedule_insert_thread(current_thread);
}
}