Ce ne sono stati molti di domande sul threading C11 e C11, ma non vedo una risposta definitiva da nessuna parte:
Non qualsiasi La libreria C implementa l'interfaccia di threading C11 utilizzabile su GNU/Linux-like? ad esempio, fornisci il <threads.h>
"opzionale". e la libreria di supporto dei thread come thrd_create()
, dalla norma C11 presso p. 376.
Idealmente, mi piacerebbe trovare una libreria che sia common-ish, open-source o gratuita, per architettura comune/generica/multi (ad esempio, GNU/Linux, x86_64 o portable-ish).
Alcuni dei link SO più utili e pertinenti:
- questo e questo su
glibc
; - questo che parla dello standard;
- questo su
clang
; - questo su C11 in generale e questo su Windows e altre piattaforme;
- molto di più su C++11 threading, ma mi interessa solo C11.
Alcune opzioni non iniziali per le librerie:
glibc
la biblioteca no; c'è un bug aperto dal 2012; c'era una proposta GSoC ma sembra non accettata;- Il progetto LLVM/Clang non ha una libreria C;
La libreria musulmana non lo fa;-- ora lo fa! Vedi la modifica di seguito e rispondi.- La libreria Newlib supporta il threading (docs), ma non utilizza
pthread
né fili C11; - uClibc non lo fa;
- questo grafico di confronto, che è dubbio (ad esempio, non vedo prove nelle fonti musl per il supporto dell'archiviazione locale del thread C11);
- Alcuni vari post su BSD,
- Pelles, che appare chiuso e solo per Windows.
Io sono non interessato ai thread POSIX (molte ottime opzioni), Windows, un IDE, né C++11 (so che GNU libstdc++
e LLVM/Clang libc++
fornire std::thread
di C++11 , che utilizza -pthread
)
Grazie!
(ri-)Modifica:domanda riaperta, quindi contenuto migrato a cui rispondere per ripulire.
Risposte:
musl ora (a partire da settembre 2014-ish) implementa i thread C11!
Secondo questo recente post sulla mailing list musulmana e altre conversazioni su quella lista nel luglio-settembre 2014, sembra che la libreria musulmana ora (a partire dal 07-09-2014) implementi l'interfaccia dei thread C11, attraverso il grafico di confronto; al momento della stesura di questo documento non riflette questo.
Poiché questa domanda è stata riaperta, ho spostato questo contenuto in una risposta adeguata.