název |
Poznámky
|
int thrd_create(thrd_t *thr, thrd_start_t func, void *arg) |
vytvoří nové vlákno provádějící funkci func s argumenty arg a vloží jeho identifikátor do thr
|
int thrd_equal(thrd_t lhs, thrd_t rhs) |
zkontroluje, zda lhs ukazuje na stejný proud jako rhs
|
thrd_t thrd_current(void) |
vrátí ID aktuálního vlákna
|
int thrd_sleep(const struct timespec* duration, struct timespec* remaining) |
zastaví aktuální vlákno na dobu trvání a do zbývajícího času vloží zbývající čas před pokračováním v práci,
|
void thrd_yield(void) |
dává plánovači úloh nápovědu k přeplánování provádění vláken, což umožňuje spouštění jiných vláken
|
_Noreturn void thrd_exit(int res) |
ukončí provádění aktuálního vlákna nastavením jeho návratového kódu na res
|
int thrd_detach(thrd_t thr) |
odpojí proud identifikovaný thr od aktuálního prostředí.
|
int thrd_join(thrd_t thr, int *res) |
čeká na ukončení vlákna identifikovaného thr a umístí jeho prováděcí kód do res
|
int mtx_init(mtx_t* mutex, int type) |
vytvoří mutex typu umístěním jeho identifikátoru do proměnné, na kterou mutex ukazuje
|
int mtx_lock(mtx_t* mutex) |
zastaví aktuální vlákno, dokud se neodemkne mutex, na který mutex ukazuje
|
int mtx_timedlock(mtx_t *restrict mutex, const struct timespec *restrict time_point) |
zastaví aktuální vlákno, dokud není odemčen mutex, na který ukazuje mutex, nebo dokud není dosaženo bodu v čase, na který ukazuje time_point
|
int mtx_trylock(mtx_t *mutex) |
uzamkne mutex, pokud již není uzamčen
|
int mtx_unlock(mtx_t *mutex) |
odemkne mutex, na který ukazuje mutex
|
int mtx_destroy(mtx_t *mutex) |
ničí mutex, na který mutex ukazuje
|
void call_once(once_flag* flag, void (*func)(void) func) |
volání func přesně jednou, i když je voláno z více vláken
|
int cnd_init(cnd_t* cond) |
vytvoří podmínkovou proměnnou vložením jejího id do cond
|
int cnd_signal(cnd_t *cond) |
odblokuje jedno vlákno čekající na proměnnou podmínky, na kterou ukazuje cond
|
int cnd_wait(cnd_t* cond, mtx_t* mutex) |
odemkne mutex, na který ukazuje mutex, a uzamkne proměnnou podmínky, na kterou ukazuje cond, dokud vlákno nehlásí cnd_signal nebo cnd_broadcast nebo nedojde k falešnému probuzení
|
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point ) |
odemkne mutex, na který ukazuje mutex, a uzamkne proměnnou podmínky, na kterou ukazuje cond, dokud vlákno nehlásí cnd_signal nebo cnd_broadcast, nebo dokud není dosaženo bodu v čase, na který ukazuje time_point, nebo dokud nedojde k falešnému probuzení
|
void cnd_destroy(cnd_t* cond); |
zničí proměnnou podmínky, na kterou ukazuje cond
|
int tss_create(tss_t* tss_key, tss_dtor_t destructor) |
vytvoří místní úložiště vlákna s daným destruktorem destruktoru a vloží jeho identifikátor do proměnné, na kterou ukazuje tss_key
|
void *tss_get(tss_t tss_key) |
vrací data obsažená v místním úložišti vlákna, identifikovaná pomocí tts_key
|
int tss_set(tss_t tss_id, void *val) |
nastaví hodnotu uloženou v místním úložišti vlákna identifikovaného tts_key na val
|
void tss_delete(tss_t tss_id) |
zničí místní úložiště vlákna identifikované tts_id
|