core: sched_switch only switch for higher priority
sched_switch() is called by some library functions when a call unblocks another thread. Then it needs to be tested if the current thread should be preempted for the newly runnable thread. A non-volutarily yield should only happen if the unblocked thread has a _higher_ priority than the current thread. The current implementation, which tests if the other thread has the same or a higher priority, does not fit the documentation.
This commit is contained in:
parent
dc20a6d142
commit
1df0b5644a
@ -158,7 +158,7 @@ void sched_switch(uint16_t other_prio)
|
||||
|
||||
DEBUG("%s: %" PRIu16 " %" PRIu16 " %i\n", sched_active_thread->name, current_prio, other_prio, in_isr);
|
||||
|
||||
if (current_prio >= other_prio) {
|
||||
if (current_prio > other_prio) {
|
||||
if (in_isr) {
|
||||
sched_context_switch_request = 1;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user