From: "NARUSE, Yui" Date: 2012-04-25T01:13:37+09:00 Subject: [ruby-core:44597] Re: [ruby-trunk - Bug #6341] SIGSEGV: Thread.new { fork { GC.start } }.join (2012/04/24 19:44), KOSAKI Motohiro wrote: >> kosaki (Motohiro KOSAKI) wrote: >>> On Mon, Apr 23, 2012 at 11:17 PM, Yusuke Endoh wrote: >>> > I suggest to make Kernel#fork raise a NotImplementedError on NetBSD >>> > 5.0+. >>> > Fortunately, the tests already have a guard for NotImplementedError >>> > because there is a supported platform that does not support >>> > Kernel#fork (you know, windows). >>> > Even on the platform, SEGV is not allowed, in principle. >>> >>> No. it works if user don't use threads. So, one option is, fork after >>> thread.new raise an exception on all platform. >> >> It is wrong. >> Ruby 1.9 makes timer thread even if there is only the main thread. > > You don't understand the issue. On other OSs, async-signal-unsafe function usage > makes unlocked libc lock issue. therefore our current fork code works. > It kill timer thread > at once. You don't know the original issue, what you are saying seems recent one. see also http://bugs.ruby-lang.org/issues/show/270 -- NARUSE, Yui