1#if defined ISO11
2
3macro ONCE_FLAG_INIT
4macro thread_local
5macro-int-constant TSS_DTOR_ITERATIONS
6
7constant thrd_success
8constant thrd_busy
9constant thrd_error
10constant thrd_nomem
11constant thrd_timedout
12
13constant mtx_plain
14constant mtx_recursive
15constant mtx_timed
16
17type thrd_t
18type thrd_start_t
19type mtx_t
20type once_flag
21type cnd_t
22type tss_t
23type tss_dtor_t
24
25function int thrd_create (thrd_t*, thrd_start_t, void*)
26function int thrd_equal (thrd_t, thrd_t)
27function thrd_t thrd_current (void)
28function int thrd_sleep (const struct timespec*, struct timespec*)
29function void thrd_exit (int)
30function int thrd_detach (thrd_t)
31function int thrd_join (thrd_t, int*)
32function void thrd_yield (void)
33
34function int mtx_init (mtx_t*, int)
35function int mtx_lock (mtx_t*)
36function int mtx_timedlock (mtx_t*, const struct timespec*)
37function int mtx_trylock (mtx_t*)
38function int mtx_unlock (mtx_t*)
39function void mtx_destroy (mtx_t*)
40
41function void call_once (once_flag*, void (*)(void))
42
43function int cnd_init (cnd_t*)
44function int cnd_signal (cnd_t*)
45function int cnd_broadcast (cnd_t*)
46function int cnd_wait (cnd_t*, mtx_t*)
47function int cnd_timedwait (cnd_t*, mtx_t*, const struct timespec*)
48function void cnd_destroy (cnd_t*)
49
50function int tss_create (tss_t*, tss_dtor_t)
51function {void*} tss_get (tss_t)
52function int tss_set (tss_t, void*)
53function void tss_delete (tss_t)
54
55#include "time.h-data"
56
57#endif
58