From: KOSAKI Motohiro Date: 2012-04-24T19:44:34+09:00 Subject: [ruby-core:44581] Re: [ruby-trunk - Bug #6341] SIGSEGV: Thread.new { fork { GC.start } }.join > 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.