| [ CnUnix ] in KIDS 글 쓴 이(By): guest (손님1) <210.118.130.192> 날 짜 (Date): 2002년 3월 7일 목요일 오전 11시 52분 52초 제 목(Title): [q] select와 signal 동기화? 네트웍 서버를 만들고 있습니다. thread 1 fd = accept(); tid = elect_thread(); pthread_kill(SIGUSR1, tid); thread a sigemptyset(&zero); sigemptyset(&new); sigaddset(&new, SIGUSR1); pthread_sigmask(SIG_BLOCK, &new, NULL); while { rset = allset; pthread_sigmask(SIG_SETMASK, &zero, &save); nsel = select(maxfd, &reset, NULL, NULL, NULL); pthread_sigmask(SIG_SETMASK, &save, NULL); if (nsel < 0 ) { blocbloc... } bloc...bloc.. } 여기서 제가 하고 싶은 것은 thread a가 select에서 봉쇄 되어 있을때만 signal를 받고자 합니다. 하지만 현실적으로 pthread_sigmask하고 select사이에 미묘한 시간차로 select 봉쇄전에 signal이 전달됩니다. 해결방안이 없을까요? 솔라리스 8입니다. (여기서는 pselect란게 없네요..-_-) |