| [ 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 - |