Threads native
suggest changeVersions
[{“Name”:“C11”,“GroupName”:null}]
Syntax
#ifndef __STDC_NO_THREADS__# include <threads.h>#endifvoid call_once(once_flag *flag, void (*func)(void));int cnd_broadcast(cnd_t *cond);void cnd_destroy(cnd_t *cond);int cnd_init(cnd_t *cond);int cnd_signal(cnd_t *cond);int cnd_timedwait(cnd_t *restrict cond, mtx_t *restrict mtx, const struct timespec *restrict ts);int cnd_wait(cnd_t *cond, mtx_t *mtx);void mtx_destroy(mtx_t *mtx);int mtx_init(mtx_t *mtx, int type);int mtx_lock(mtx_t *mtx);int mtx_timedlock(mtx_t *restrict mtx, const struct timespec *restrict ts);int mtx_trylock(mtx_t *mtx);int mtx_unlock(mtx_t *mtx);int thrd_create(thrd_t *thr, thrd_start_t func, void *arg);thrd_t thrd_current(void);int thrd_detach(thrd_t thr);int thrd_equal(thrd_t thr0, thrd_t thr1);_Noreturn void thrd_exit(int res);int thrd_join(thrd_t thr, int *res);int thrd_sleep(const struct timespec *duration, struct timespec* remaining);void thrd_yield(void);int tss_create(tss_t *key, tss_dtor_t dtor);void tss_delete(tss_t key);void *tss_get(tss_t key);int tss_set(tss_t key, void *val);
Remarks
C11 threads are an optional feature. Their absence can be tested with __STDC__NO_THREAD__. Currently (Jul 2016) this feature is not yet implemented by all C libraries that otherwise support C11.
C libraries that are known to support C11 threads are:
C libraries that don’t support C11 threads, yet:
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents