A process can relinquish the processor voluntarily without blocking by calling
sched_yield. The process will then be moved to the end of the queue for
its static priority and a new process gets to run.
Note: If the current process is the only process in the highest priority list at
that time, this process will continue to run after a call to
POSIX systems on which sched_yield is available define
_POSIX_PRIORITY_SCHEDULING in <unistd.h>.