From: Aliaksey Kandratsenka Date: 2010-01-27T23:47:26+09:00 Subject: [ruby-core:27899] [Bug #2564] [patch] re-initialize timer_thread_{lock,cond} after fork Issue #2564 has been updated by Aliaksey Kandratsenka. It seems I'm not stating the problem clearly enough. What happens: a) lets suppose timer thread is doing some periodic work. This means that thread_thread_lock is taken. b) at this instant of time we Kernel#fork. Memory is copied, but not threads. c) Child ruby process now tries to spawn it's own timer thread d) as part of timer thread spawn procedure it tries to take timer_thread_lock, but because it sees it in locked state it cannot succeed. e) Child simply hangs forever. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2564 ---------------------------------------- http://redmine.ruby-lang.org