There have been a lot of questions about C11 and C11 threading, but I don't see a definitive answer anywhere:
Does any C library implement the C11 threading interface usable on GNU/Linux-like? e.g., provide the "optional" <threads.h>
and the thread support library like thrd_create()
, from the C11 standard near p. 376.
Ideally, I'd like to find a library that is common-ish, open-source or free, for common/generic/multi architecture (e.g., GNU/Linux, x86_64, or portable-ish).
A few of the more helpful and relevant SO links:
- this one and this one on
glibc
; - this one that's talking about the standard;
- this one about
clang
; - this one about C11 in general and this one about Windows and other platforms;
- a lot more about C++11 threading, but I am only interested in C11.
Some non-starter options for libraries:
glibc
library does not; there is an open bug since 2012; there was GSoC proposal but seems not accepted;- LLVM/Clang project does not have a C library;
- musl library does not; -- now does! See edit below and answer.
- Newlib library supports threading (docs), but not using
pthread
nor C11 threads; - uClibc does not;
- this comparison chart, which is dubious (e.g., I see no evidence in musl sources for C11 thread-local storage support);
- Some various posts about BSD,
- Pelles, which appears closed and Windows-only.
I am not interested in POSIX threads (many fine options), Windows, an IDE, nor C++11 (I know that GNU libstdc++
and LLVM/Clang libc++
provide C++11's std::thread
, which uses -pthread
)
Thanks!
(re-)Edit: question re-opened, so migrated content to answer to clean up.
See Question&Answers more detail:os