void* ClassA::ThreadEntry(void* pData)
{
pthread_detach(pthread_self());
ClassA* obj= (ClassA*)pData;
sigset_t mask;
int signo;
sigemptyset(&mask);
sigaddset(&mask,SIGUSR1);
while(1){
sigwait(&mask,&signo);
..........job............
}
}
쓰레드를 생성한후 진입점(위 코드)로 진입한후 sigwait로 SIGUSR1을 기다리면서 block 되어있는 상태입니다.
문제가 무엇인지 설명을 하면..
다른 쓰레드에서 SIGUSR1시그널을 전송한 후에 프로그램을 ctrl+c로 종료하면 정상적으로 모든 쓰레드가 종료되는 데요