Sto realizzando un progetto in cui server e client comunicano attreverso un socket. Alla ricezione di un segnale con sigwait però la accept non risponde neanche chiudendo il socket. Qualcuno ha idea del perchè?

int main () {

......
ec_signal(sigemptyset(&set));
ec_signal(sigaddset(&set,SIGINT));
ec_signal(sigaddset(&set,SIGQUIT));
ec_signal(sigaddset(&set,SIGUSR1));
ec_signal(sigaddset(&set,SIGUSR2));
ec_signal(sigaddset(&set,SIGTERM));

pthread_sigmask(SIG_BLOCK,&set,NULL);

...
}

thread segnali {
while(1) {

sigwait(&set,&sig_num);
}
}

Sbaglio qualcosa nel mascherare i segnali?