From: matz@... (Yukihiro Matsumoto) Date: 2003-10-01T15:54:51+09:00 Subject: [ruby-dev:21454] Re: deferred finalizers まつもと ゆきひろです In message "[ruby-dev:21453] Re: deferred finalizers" on 03/10/01, nobu.nakada@nifty.ne.jp writes: |At Fri, 26 Sep 2003 18:46:01 +0900, |Nobuyoshi-Nakada wrote: |> bisonを使っている、つまり!ruby_parser_stack_on_heap()の場合、パー |> ズ中にもオブジェクトが回収されることがありますが、finalizerが定 |> 義されていても(次のGCまで)実行されません。 | |これだけだと、deferred_final_listのオブジェクトが解放されてませ |んでした。 えーと、finalizersが実行されるならタイミングはいつでもいいん じゃないかと思いますが、実行されないケースもありえるんでしたっ け。 |また、これとは関係ありませんが、NoMemoryErrorをrescueしても常態 |に復帰できなさそうです。 | |* add_heap()でheapsやheaps_limitsのrealloc()に失敗したときに、 | そのまま残っているはずのそれまでの配列も捨ててしまっている | |* heaps_limitsだけ失敗したときには、二つの長さが一致しない | |ということで、この二つは一緒に管理したほうがいいんじゃないでしょ |うか。 同意します。コミットしてもらおうかなあ。 なんか rb_gc_finalize_deferred() のあたりが好きじゃないんだ けど、どこかどうとははっきり言えないんですよねえ。