sched_yield(2)

NAZWA
sched_yield - oddaje procesor

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <sched.h>

int sched_yield(void);

OPIS
sched_yield() powoduje zrezygnowanie z używania procesora przez wywołujący wątek. Wątek będzie przeniesiony na koniec kolejki swojego statycznego priorytetu i uruchomiony zostanie kolejny wątek.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu sched_yield() zwraca zero. Po błędzie zwracane jest -1 i ustawiane errno wskazując błąd.

BŁĘDY
W implementacji linuksowej, sched_yield() zawsze kończy się powodzeniem.

STANDARDY
POSIX.1-2024.

HISTORIA
POSIX.1-2001 (lecz opcjonalne). POSIX.1-2008.

Przed POSIX.1-2008 systemy, na których dostępny jest sched_yield() definiowały w <unistd.h> _POSIX_PRIORITY_SCHEDULING.

ZASTRZEŻENIA
sched_yield() jest przeznaczony do użycia z algorytmami szeregowania zadań czasu rzeczywistego (tj. SCHED_FIFO lub SCHED_RR). Korzystanie z sched_yield() z algorytmami szeregowania zadań, które nie są deterministyczne, takimi jak SCHED_OTHER, daje nieokreślony rezultat i prawdopodobnie oznacza, że aplikacja tak działająca wymaga przeprojektowania.

Jeśli wątek wywołujący jest jedynym wątkiem w najwyższej liście priorytetów, po wywołaniu sched_yield(), jego działanie będzie trwać dalej.

Należy unikać niepotrzebnego lub nieodpowiedniego (np. gdy zasoby potrzebne przez inne szeregowane wątki są wciąż utrzymywane przez wywołującego) wywoływania sched_yield(), ponieważ dokonywanie tego będzie powodowało niepotrzebne przełączanie kontekstów, co wpływa negatywnie na wydajność systemu.

ZOBACZ TAKŻE
sched(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.