]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man2/sched_yield.2
dlopen.3: Make it more explicit that LD_BIND_NOW overrides RTLD_LAZY
[thirdparty/man-pages.git] / man2 / sched_yield.2
index f8c3328286fbb4a94a5f734c28b2668c0e73dfba..e6c0be56cc435f1e53d7fafb8165f2df3df87908 100644 (file)
@@ -1,7 +1,6 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright (C) Tom Bjorkholm & Markus Kuhn, 1996
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
 .\" 1996-04-01 Tom Bjorkholm <tomb@mydata.se>
 .\"            First version written
 .\" 1996-04-10 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
 .\"            revision
 .\"
-.TH SCHED_YIELD 2 1996-04-10 "Linux" "Linux Programmer's Manual"
+.TH SCHED_YIELD 2 2015-08-08 "Linux" "Linux Programmer's Manual"
 .SH NAME
 sched_yield \- yield the processor
 .SH SYNOPSIS
 .B #include <sched.h>
 .sp
-\fBint sched_yield(void);
+.B int sched_yield(void);
 .SH DESCRIPTION
-A process can relinquish the processor voluntarily without blocking by calling
-.BR 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
-.BR sched_yield ().
-
-POSIX systems on which
 .BR sched_yield ()
-is available define
-.B _POSIX_PRIORITY_SCHEDULING
-in \fI<unistd.h>\fP.
-.SH "RETURN VALUE"
+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.
+.SH RETURN VALUE
 On success,
 .BR sched_yield ()
 returns 0.
@@ -61,11 +49,32 @@ is set appropriately.
 In the Linux implementation,
 .BR sched_yield ()
 always succeeds.
-.SH "CONFORMING TO"
-POSIX.1-2001.
-.SH "SEE ALSO"
-.BR sched_setscheduler (2)
-for a description of Linux scheduling.
-.PP
-.I Programming for the real world \- POSIX.4
-by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008.
+.SH 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
+.BR sched_yield ().
+
+POSIX systems on which
+.BR sched_yield ()
+is available define
+.B _POSIX_PRIORITY_SCHEDULING
+in
+.IR <unistd.h> .
+
+Strategic calls to
+.BR sched_yield ()
+can improve performance by giving other threads or processes
+a chance to run when (heavily) contended resources (e.g., mutexes)
+have been released by the caller.
+Avoid calling
+.BR sched_yield ()
+unnecessarily or inappropriately
+(e.g., when resources 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.
+.SH SEE ALSO
+.BR sched (7)