sched_yield(2)



SCHED_YIELD(2)             Linux Programmer's Manual            SCHED_YIELD(2)

NAME
       sched_yield - yield the processor

SYNOPSIS
       #include <sched.h>

       int sched_yield(void);

DESCRIPTION
       sched_yield()  causes  the  calling  thread to relinquish the CPU.  The
       thread is moved to the end of the queue for its static priority  and  a
       new thread gets to run.

RETURN VALUE
       On success, sched_yield() returns 0.  On error, -1 is returned, and er-
       rno is set appropriately.

ERRORS
       In the Linux implementation, sched_yield() always succeeds.

CONFORMING TO
       POSIX.1-2001, POSIX.1-2008.

NOTES
       If the calling thread is the only thread in the highest  priority  list
       at that time, it will continue to run after a call to sched_yield().

       POSIX  systems on which sched_yield() is available define _POSIX_PRIOR-
       ITY_SCHEDULING in <unistd.h>.

       Strategic calls to sched_yield()  can  improve  performance  by  giving
       other threads or processes a chance to run when (heavily) contended re-
       sources (e.g., mutexes) have been released by the caller.  Avoid  call-
       ing  sched_yield()  unnecessarily  or  inappropriately  (e.g., when re-
       sources needed by other schedulable  threads  are  still  held  by  the
       caller),  since  doing  so will result in unnecessary context switches,
       which will degrade system performance.

       sched_yield() is intended for use with  real-time  scheduling  policies
       (i.e., SCHED_FIFO or SCHED_RR).  Use of sched_yield() with nondetermin-
       istic scheduling policies such as SCHED_OTHER is unspecified  and  very
       likely means your application design is broken.

SEE ALSO
       sched(7)

COLOPHON
       This  page  is  part of release 5.07 of the Linux man-pages project.  A
       description of the project, information about reporting bugs,  and  the
       latest     version     of     this    page,    can    be    found    at
       https://www.kernel.org/doc/man-pages/.

Linux                             2017-09-15                    SCHED_YIELD(2)

Man(1) output converted with man2html
list of all man pages