In message <20090331184858.47b8e1b3.ksmakoto / dd.iij4u.or.jp>
	on Tue, 31 Mar 2009 18:48:46 +0900,
	"KISHIMOTO, Makoto" <ksmakoto / dd.iij4u.or.jp> wrote:
> http://redmine.ruby-lang.org/issues/show/270 にもある
> 「FreeBSDやNetBSDは,一度 pthread を作ると,後始末をして
> も fork 後,pthread を作ろうとすると刺さる」に関する件なのですが、
...
> これは OS 側のバグなんでしょうか、それとも POSIX 的にしょうがない
> 仕様なんでしょうか。
> FreeBSD の send-pr を thread で検索してみた感じでは、報告されて
> なさそうなので、バグということなら報告したいのですが。
完全に理解しているわけではありませんが、NetBSDのpthread_atfork(3)に、

CAVEATS
     After calling fork(2) from a multithreaded process, it is only safe to
     call async-signal-safe functions until calling one of the exec(3) func-
     tions.  The pthread_*() functions are not async-signal-safe, so it is not
     safe to use such functions in the child handler.

なんて書かれているあたりも関係ありそうに思えます。

-- 
神戸 隆博 / Takahiro Kambe