CnUnix

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


그러니까 명시적으로 atfork를 호출하여 그 핸들러에서
unlock을 수행하는 것은 어떨까요?

정석대로라면 prepare에서 lock하고 parent와 child에서
unlock을 해야겠지만, 꼼수(꽁수?)를 써서 prepare에서
혹시 걸려있을지도 모르는 mutex lock을 풀고가자는 거죠.
unlock이나 init을 수행하면 될 것도 같습니다만...

제가 쓸 수 있는 solaris환경에서는 비슷한 시나리오에서
fork가 잘 됩니다. atfork없이도요.

이 놈의 pthread가 시스템마다 죄다 다르고 특정 작업
(스케쥴링 같은)에서는 시스템을 타는 버그가 종종 있어서
전에 dalgong님께서 지적하신 대로 호환성을 믿고 쓸만한 
것은 못 되는 것 같더군요.

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