sched_yield(2)

НАИМЕНОВАНИЕ
sched_yield - освободить процессор

БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)

ОБЗОР
#include <sched.h>

int sched_yield(void);

ОПИСАНИЕ
Вызов sched_yield() заставляет вызывающую нить освободить процессор. Нить перемещается в конец очереди согласно её статическому приоритету, и управление передаётся другой нити.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении sched_yield() возвращается 0; при ошибке возвращается -1, а в errno содержится код ошибки.

ОШИБКИ
В Linux-реализации sched_yield() всегда завершается успешно.

СТАНДАРТЫ
POSIX.1-2024.

ИСТОРИЯ
POSIX.1-2001 (but optional). POSIX.1-2008.

Before POSIX.1-2008, systems on which sched_yield() is available defined _POSIX_PRIORITY_SCHEDULING in <unistd.h>.

CAVEATS
Функция sched_yield() предназначена для использования с алгоритмами планирования реального времени (т. е., SCHED_FIFO или SCHED_RR). Использование sched_yield() с недерминированными алгоритмами планирования, такими как SCHED_OTHER, не определено и указывает на, вероятно, неправильно разработанное приложение.

Если вызывающая нить единственная в списке с самым высоким приоритетом, то она продолжит выполняться после вызова sched_yield().

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

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).