CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2002년 5월 17일 금요일 오후 11시 59분 36초
제 목(Title): Re: [q]pthread안에서 fork에서 deadlock발


alita님께서 인용하신 man page에도 비슷한 내용이 나오는데,
굳이 mutex lock을 걸었다 풀었다 할 필요는 없을 것 같고
두번째 방법을 응용해서 pthread_atfork를 fork앞에 사용하고
mutex를 안 쓰신다니 mutex관련 작업을 아예 하지 않는 것도
통할 듯 싶습니다. 다만 mutex를 쓰셔야 한다면 첫번째 핸들러
prepare에서 잠깐 걸었다가 atfork이후에 parent하고 child에서
풀어주는 과정을 피할 수가 없겠네요. 아니면 두번째 방법처럼
atfork 이후로 동기화작업을 미뤄놓으시던가요.

deadlock이 걸리는 원인은 혹시 fork(/exec도?)를 두 쓰레드가 
동시에 수행해서 그런 건 아닙니까? 

PS
저도 semaphore가 deadlock이 걸리는데 이거 참 환장할 노릇입니다.
걸릴 곳이 없어서 말이죠. 게다가 매번 걸리는 게 아니고 cgi로
수행되는 daemon이라서 trace를 할 수도 없고 말이죠. -_-;;

---
어떤 성취가, 어떤 조롱이, 또는 어떤 고뇌가 나를 기다리고 있을지 나는 모른다. 
나는 아무 것도 모른다. 그러나 나는 아직 과거의 경이로운 기적의 시대가 영원히 
과거의 것이 되어 버리지는 않았다는 사실을 굳게 믿고 있다.  - Stanislaw Lem -
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.