From: Hidetoshi NAGAI Date: 2006-04-06T01:39:40+09:00 Subject: [ruby-dev:28511] Re: rb_gc_call_finalizer_at_exit() の実行中かどうかを知りたい 永井@知能.九工大です. From: Tanaka Akira Subject: [ruby-dev:28505] Re: rb_gc_call_finalizer_at_exit() の実行中かどうかを知りたい Date: Wed, 5 Apr 2006 03:30:04 +0900 Message-ID: <87u099dwr8.fsf@m17n.org> > tk で実験したわけではないのでなんですが、zlib や bdb の経験 > からいうと、終了処理中に SEGV するなら、終了処理中ではなくて > も SEGV するかもしれない、と思います。 > > 問題は複数のオブジェクトを一度に回収する場合にそれらの > finalize 処理が予期しない順序で起動するというところにありま > すが、これは普通の GC でも起きるので。 とりあえず今回の問題は,終了処理中に呼ばれた finalize 処理の中で 警告 (無視しても良いもの) が発生し,ruby がそれを出力しようとして rb_io_write を呼んだ時点で SEGV で落ちていたようです. # 以前に ruby_debug における同様のケースで値を変更して回避していた問題 # なのですが,ruby_verbose については気が付いていませんでした. 問題の根本的解決ではないという気はしますが (^_^;, 現状はこれでお茶を濁しておこうと思います. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp