Chapter 14. System Calls
14.1. sched_yield
The
sched_yield
function was originally designed to cause a processor to select a process other than the running one. This type of request is prone to failure when issued from within a poorly-written application.
When the
sched_yield()
function is used within processes with realtime priorities, it can display unexpected behavior. The process that has called sched_yield
gets moved to the tail of the queue of processes running at that priority. When this occurs in a situation where there are no other processes running at the same priority, the process that called sched_yield
continues running. If the priority of that process is high, it can potentially create a busy loop, rendering the machine unusable.
In general, do not use
sched_yield
on realtime processes.