Si un proceso de Unix (Posix) recibe una señal, se ejecutará un controlador de señal.
¿Qué le pasará en un proceso multiproceso? ¿Qué hilo recibe la señal?
En mi opinión, la API de señal debería extenderse para manejar eso (es decir, el subproceso del controlador de señal debería poder determinarse), pero buscando información en la red solo encontré llamas de un año en la lista de correo del kernel de Linux y en diferentes foros Como entendí, el concepto de Linus difería del estándar Posix, y primero se construyó una capa de compatibilidad, pero ahora Linux sigue el modelo posix.
¿Cuál es el estado actual?
linux
signals
posix
multithreading
peterh - Restablece a Monica
fuente
fuente
Respuestas:
La entrada en POSIX sobre " Generación y entrega de señales " en "Justificación: Información general de las interfaces del sistema" dice
Del
signal(7)
manual en un sistema Linux:Y en
pthreads(7)
:Del
pthreads(3)
manual en un sistema OpenBSD (como ejemplo de un enfoque alternativo):(Actualmente no estoy al tanto de cómo se maneja esto cuando varios subprocesos se ejecutan simultáneamente en una máquina multiprocesador)
La implementación anterior de LinuxThread de hilos POSIX solo permitía que hilos individuales distintos fueran apuntados por señales. Desde
pthreads(7)
un sistema Linux:fuente