The ISO C multithreading API is documented in ISO C 11 https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf.
To make use of ISO C multithreading, even on platforms that don’t support it or have severe bugs, use the following Gnulib modules:
| Purpose | Module |
|---|---|
| For thread creation and management: | thrd |
| For simple locks, recursive locks, and read-write locks: | mtx |
| For once-only execution: | mtx |
| For “condition variables” (wait queues): | cnd |
| For thread-local storage: | tss |
There is also a convenience module named threads which depends on all
of these; so you don’t need to enumerate these modules one by one.