| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (Nobody) 날 짜 (Date): 2003년 7월 30일 수요일 오후 12시 20분 24초 제 목(Title): Re: [Q] signal handler가 계속 call됨. 일반적으로 일단 쓰레드 시작하기 전에 sigfillset (& global_signal_set); sigdelset (& global_signal_set, (뭐 꼭 필요한 시그날 예를 들면 SIGALRM 이라던 - timeout 용)); 그리고 일단 모든 시그날을 블락해주시고 나서 thr_sigsetmask (SIG_BLOCK.. 어쩌고 저쩌고.,..); 그리고 나자 마자 시그날 캣쳐 쓰레드를 시작해줍니다. 그리고 시작된 쓰레드 캣쳐 에서 받아줄 시그날을 걸어 놓고 sigwait() 해줘야죠. sigwait() 사용법은 맨페이지 참조. 전 posix thread 는 디몬쓰레드 솔라리스서 쓰다가 메모리리크에 딘적이 있어서 잘 안쓰고 솔라리스 쓰레드만 써봐서 포식스에선 다른 방법을 쓰는지 잘 모르겠네요. 하여간 대충 비스꾸리하게 할 것같은데요. |