@node threads.h
@section @file{threads.h}

ISO C23 specification:@* @url{https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.28.

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/threads.h.html}

Defines the multithreading facility of ISO C11.

Gnulib module: threads-h
@mindex threads-h

Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on many platforms:
glibc 2.27, macOS 14, FreeBSD 9.3, NetBSD 8.0, OpenBSD 7.5, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 2.2.x, mingw, MSVC 14, Android 9.0.
@item
This header file defines @code{thrd_start_t} incorrectly on some platforms:
AIX 7.2.
@item
This header file does not define @code{TSS_DTOR_ITERATIONS} on some platforms:
AIX 7.2.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
There is no way to define a working @code{thread_local} macro on some platforms:
@itemize
@item
Mac OS X 10.5,
@item
OpenBSD 6.5,
@item
AIX 7.1 with gcc (but it works with @samp{xlc -qthreaded -qtls}),
@item
HP-UX 11.31 with cc (but it works with gcc),
@item
Android 4.3.
@end itemize
@end itemize
