Hilos y Señales
Las señales son compartidas por todos los hilos de un proceso. Si un
hilo modifica la acción asociada a una señal, todos los
hilos se ven afectados. Peor aún, las señales son enviadas a un único
hilo en el proceso. No sirve que una hebra espere por una señal, pues
puede ser enviada a otra. Si la señal está relacionada a una falla de
hardware, la señal es usualmente enviada al hilo que causó la
situación,
pero en otros casos la señal es enviada a un hilo arbitrario.
Un hilo puede bloquear señales usando pthread_sigmask(...).
Un hilo también puede esperar por la ocurrencia de una o más señales
llamando:
#include <signal.h>
int sigwait(const sigset_t * restrict set, int * restrict signop).
set especifica el conjunto de señales por las cuales se espera. Cuando
se retorna signop apunta a un entero indicando la señal que despertó la
hebra.
Usted puede revisar el ejemplo LeakyBucket
donde se usan las funciones señaladas arriba en conjunto con hebras.