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.