From: Yusuke ENDOH Date: 2010-02-11T00:29:17+09:00 Subject: [ruby-dev:40382] [Bug:trunk] rubyspec: ObjectSpace.define_finalizer doesn't call self-referencing finalizers FAILED なかださんかまつもとさん 遠藤です。 以下のようにすると T_ZOMBIE が見えてしまうのはバグでしょうか。 $ ./ruby -ve ' obj = "test" ObjectSpace.define_finalizer(obj, proc { begin; p obj; ensure; p $!; end }) ' ruby 1.9.2dev (2010-02-10 trunk 26632) [i686-linux] # [ruby-core:23918] で、obj への reference があるからこれは回収 されないようなことが書かれていますが、結局回収されるように なっているようです。 [ruby-core:24095] でバグとして登録されていますが、どっちが 正しいのかよくわかりません。 rubyspec に回収されないことを確認する spec が入っていて、失敗 しています。 回収されるのが正解だとしたら、例外メッセージから unexpected は 消すべきだと思います。 見えないのが正解だとしたら、バグなんでしょう。 -- Yusuke ENDOH