From: Akinori MUSHA Date: 2009-04-01T11:54:54+09:00 Subject: [ruby-dev:38230] Re: *BSD で fork できない理由 --pgp-sign-Multipart_Wed_Apr__1_11:55:41_2009-1 Content-Type: text/plain; charset=ISO-2022-JP At Tue, 31 Mar 2009 18:48:46 +0900, KISHIMOTO, Makoto wrote: > http://redmine.ruby-lang.org/issues/show/270 にもある > 「FreeBSDやNetBSDは,一度 pthread を作ると,後始末をして > も fork 後,pthread を作ろうとすると刺さる」に関する件なのですが、 > 個人的に使っているツールがこれのために Ruby1.9 に移行できないでいます。 > > これは OS 側のバグなんでしょうか、それとも POSIX 的にしょうがない > 仕様なんでしょうか。 > FreeBSD の send-pr を thread で検索してみた感じでは、報告されて > なさそうなので、バグということなら報告したいのですが。  報告され認識もされていますが、残念ながら今のところ修正予定は ありません。POSIX/Pthread の仕様的にも動作保証外なので、必死に 頑張ってまで何とかしようという動きにはなっていないようです。 http://www.freebsd.org/cgi/query-pr.cgi?pr=threads/101323  JDK/CPython等、他の言語処理系とは似た問題を共有しているので、 そちらに調査を広げるといいかもしれません。  また、具体的なやりたいことが示されれば代替手段を提示できるかも しれません。fork+signal を spawn+何らかのIPC に置き換えるとか、 daemon を daemontools や (Macなら) launchd などの外部ツールに 任せるとか。(ちょっと悔しいですが) -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Wed_Apr__1_11:55:41_2009-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAknS160ACgkQkgvvx5/Z4e6mCwCeJmK/Ahagk3kW7+XCAxGF2uOX 2FwAni918bxGNdgGBgz1csmeHF/zSNm6 =lb7F -----END PGP SIGNATURE----- --pgp-sign-Multipart_Wed_Apr__1_11:55:41_2009-1--