Section (2) sched_yield
sched_yield — yield the processor
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.
returns 0. On error, −1 is returned, and
errno is set appropriately.
If the calling thread is the only thread in the highest
priority list at that time, it will continue to run after a
POSIX systems on which
sched_yield() is available define
Strategic calls to
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
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.
sched_yield() is intended
for use with real-time scheduling policies (i.e.,
SCHED_RR). Use of
sched_yield() with nondeterministic
scheduling policies such as
SCHED_OTHER is unspecified and very likely
means your application design is broken.
This page is part of release 5.04 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
Copyright (C) Tom Bjorkholm & Markus Kuhn, 1996
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
the License, or (at your option) any later version.
The GNU General Public License_zsingle_quotesz_s references to object code
and executables are to be interpreted as the output of any
document formatting or typesetting system, including
intermediate and printed output.
This manual is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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, see
1996-04-01 Tom Bjorkholm <tombmydata.se>
First version written
1996-04-10 Markus Kuhn <mskuhncip.informatik.uni-erlangen.de>