c multithreading c11

C11 GCC threads.h no encontrado?



multithreading (3)

El estado del documento C11 de gcc indica que no admite subprocesos, dice:

Enhebrado [Opcional] | Tema de la biblioteca (no implementado)

Como indica el documento, esto no es realmente un problema de gcc o clang sino de glibc . Como señaló Zack, parece que pronto habrá trabajo en marcha para obtener apoyo para esto en glibc pero eso no te ayudará ahora. Puedes usar this mientras tanto.

Corregido para glibc 2.28

Según el error 14092 - Soporte C11, esto se solucionará en glibc 2.8:

Implementado en sentido ascendente por:

9d0a979 Agregar documentación manual para hilos.h
0a07288 nptl: Agregar casos de prueba para subprocesos ISO C11
nptl c6dd669: Agregar símbolos de abilist para subprocesos C11
78d4013 nptl: Agregar las funciones tss_ * de los subprocesos C11
918311a nptl: Agregar funciones Cnd_ * de subprocesos C11
3c20a67 nptl: agregar las funciones de call_once de los subprocesos C11
18d59c1 nptl: agrega las funciones mtx_ * de los subprocesos C11
ce7528f nptl: Agregar hilos C11 thrd_ * funciones

Se incluirá en 2.28.

El siguiente codigo

#include <threads.h>

Me da este error:

fatal error: threads.h: No such file or directory

Usando el último GCC y Clang con -std = c11.

¿Los subprocesos C11 no son compatibles con GCC y Clang? ¿O hay un hack (o algo para instalar) para obtenerlo? Solo uso Ubuntu 14.04 con los paquetes gcc y clang del repositorio de Ubuntu.


Si bien los subprocesos C11 aún no se han implementado, los subprocesos C ++ 11 se han implementado y tienen una funcionalidad similar. Por supuesto, C ++ 11 puede ser una solución inaceptable, en cuyo caso los comentarios anteriores sobre los hilos POSIX son su mejor esperanza.


Soporte Musl C11 <threads.h> .

En Debian instala musl-tools y luego compila con musl-gcc . Estoy trabajando en bootstrapping Debian con Musl en lugar de Glibc.

También vea this .