dwww Home | Manual pages | Find package

sched_yield(2)                System Calls Manual               sched_yield(2)

NAME
       sched_yield - yield the processor

LIBRARY
       Standard C library (libc, -lc)

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 to indicate the error.

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

STANDARDS
       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)

Linux man-pages 6.03              2022-10-30                    sched_yield(2)

Generated by dwww version 1.15 on Sat Jun 15 19:11:20 CEST 2024.