From: "mrkn (Kenta Murata)" Date: 2012-11-28T17:04:16+09:00 Subject: [ruby-dev:46651] [ruby-trunk - Bug #7452] Main thread is stopped after running finalizers if the main thread has a finalizer Issue #7452 has been updated by mrkn (Kenta Murata). > ファイナライザは実行後にメインスレッドだけfree-listには追加しないようにするパッチなんですね。 そのとおりです。 笹田さんに修正方法が場当たり的だと指摘されて、自分もそう思っているのですが、 残念ながら今のところエレガントな解決方法を考えられていません。 ---------------------------------------- Bug #7452: Main thread is stopped after running finalizers if the main thread has a finalizer https://bugs.ruby-lang.org/issues/7452#change-34078 Author: mrkn (Kenta Murata) Status: Assigned Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-11-28 trunk 37923) [x86_64-darwin11.4.2] 以下のようにメインスレッドにファイナライザを登録すると、ファイナライザ実行後に止まってしまいます。 ObjectSpace.define_finalizer(Thread.main) {} trunk と ruby_1_9_3 ブランチの先頭で発生することを確認しています。 trunk は以下の gist に貼った patch で修正できました。 https://gist.github.com/4159481 1.9.3 は以下の gist に貼った patch で修正できました。 https://gist.github.com/4159480 -- http://bugs.ruby-lang.org/