From: nobu.nakada@... Date: 2003-10-01T17:59:50+09:00 Subject: [ruby-dev:21457] Re: deferred finalizers なかだです。 At Wed, 1 Oct 2003 15:54:51 +0900, Yukihiro Matsumoto 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() のあたりが好きじゃないんだ > けど、どこかどうとははっきり言えないんですよねえ。 deferred_final_listは除いて、heapsのほうだけコミットしましょう か。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦