A process can relinquish the processor voluntarily without blocking by calling sched_yield(2). 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 sched_yield(2).
POSIX systems on which sched_yield(2) is available define _POSIX_PRIORITY_SCHEDULING in <unistd.h>''
On success, sched_yield returns 0. On error, -1 is returned, and errno is set appropriately.
POSIX.1b (formerly POSIX.4)
sched_setscheduler(2) for a description of Linux scheduling.