signal 중 하나인 SIGALARM 곤련 질문입니다.
글쓴이: trymp / 작성시간: 목, 2011/07/07 - 9:59오전
제가 정해진 시간에 특정 동작을 실행시키기 위해서 alarm() 를 사용했습니다.
물론 1~2분정도의 오차는 상관없습니다.
그래서 특정 시간대에 동작하도록 alarm()을 걸어놓았는데,
seconds 는 정확하게 계산해서 걸어놓았습니다.
alarm(3120) 으로 설정해놓았는데요. (52분후에)
그 시간에 동작하지 않고 몇시간 뒤에 동작을 합니다. -,.-
alarm signal 을 몇시간 뒤에 받음...
데몬은 백그라운드 상태에 multithread 이고
주기적인 block에는 sleep() 같은 것 않쓰고 select() 사용했습니다.
alarm() 함수에 무슨 버그가 있는 것인지???
왜 그런지 모르겠습니다.
고수님들의 많은 조언 부탁드립니다.
Forums:
pthread_sigmask()를 쓰셨나요?
pthread_sigmask()를 쓰셨나요?
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
안썼습니다..
..
signal은 현재 process에 전달되는 것이며,
signal은 현재 process에 전달되는 것이며, 어느 thread로 갈 것인지는 정해지지 않았습니다. 특정 thread에서 signal을 받고 싶다면, 다른 thread에서는 해당 signal을 block 해야만 합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
문의 있습니다.
alarm signal 이 전달될 쯤에 상태가 single 상태여도 pthread_sigmask() 를 해줘야 하나요?
thread 를 필요할 때만 돌리고 있는 상태인지라... -,.-
thread 에 대한 signal 처리를 정확히 나누어주면 alarm signal 이 제시간에
도착한다는 말씀이신거죠??
select에 사용되는
timeout값은 얼마로 사용하시나요?
timeout 은 5초 주기로 하였습니다.
select 의 timeout 이 문제가 되는 것인가요?
댓글 달기