Si encuentras algún problema con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.
Solución:
Los tipos atómicos son aquellos para los que se garantiza que la lectura y la escritura sucederán en una sola instrucción. Más explicación de gnu.org:
24.4.7.2 Tipos atómicos
Para evitar la incertidumbre sobre la interrupción del acceso a una variable, puede usar un tipo de datos particular para el cual el acceso sea siempre atómico:
sig_atomic_t
. Se garantiza que la lectura y escritura de este tipo de datos ocurra en una sola instrucción, por lo que no hay forma de que un controlador se ejecute “en medio” de un acceso.El tipo
sig_atomic_t
es siempre un tipo de datos entero, pero cuál es y cuántos bits contiene, puede variar de una máquina a otra.Tipo de datos:
sig_atomic_t
Este es un tipo de datos entero. A los objetos de este tipo siempre se accede de forma atómica.
En la práctica, puede suponer que
int
es atómico. También puede suponer que los tipos de punteros son atómicos; eso es muy conveniente. Ambos supuestos son true en todas las máquinas compatibles con GNU C Library y en todos los sistemas POSIX que conocemos.
Para obtener aún más detalles y algunas cosas específicas de C11, consulte CppReference.com (sin afiliación).