| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (Nobody) 날 짜 (Date): 2003년 3월 14일 금요일 오후 01시 24분 04초 제 목(Title): Re: [Q] Signal Handler 에서 Bus Error.. signal handler 안에서 복잡한 연산.. 아니 복잡하다기 보다는 시간을 잡아 먹을수 있는 것을 피하는 게 좋을 이유를 들면요.. 우선 떠오르는 것은 signal mask 콘트롤을 어떻게 할지 고민 해야 될 경우가 생길수 있어요. 즉 여러가지 시그날이 다 들어올 가능성이 있을때 어떤거는 signal 핸들러 안에서 막아주고 또는 sighold 해주고 어떤 것은 꼭 놓치지 말고 받아 주어야 할 때도 있을 수 있고.. 와중에 꼭 받아 주어야 할 시그날 핸들러 안에서 또 같은 고민을 해야 할수도 있고. 그리고 무엇보다도 lost signal 이 생길 확률이 있지요. sighold() 를 핸들러 안에서 자동으로 하던 직접 해주던 간에 들어오는 시그날이 무한대로 queue 되는 것은 아니니까요. 그리고 만에 하나 복잡한 알고리듬을 구현 하는데 그것이 핸들러 안에 있다면 벌레가 있을 경우 시그날을 다 매스크 해준 상태에서 어떻게 룹에 들어가 있다던지 하면 좀 황당해 지는 경우가 많이 생기죠. 죽이려고 하면 -9 써야 죽고 다른 시그날로는 잘 죽지도 않고 이런 경우는 지금 말할때야 미리 그렇다고 가정을 하니까 그런가 보다 하지만 그냥 아무생각없이 짜놓고 가끔가다 프로그램이 hang 되고 SIGKILL 안보냄 죽지도 않는다고 operation이나 시스애드민이 불평하면 디버깅할 길이 조금 막막해질수도 있죠. |