From: Tanaka Akira Date: 2006-04-05T03:30:04+09:00 Subject: [ruby-dev:28505] Re: rb_gc_call_finalizer_at_exit() の実行中かどうかを知りたい In article <20060404.110704.74755986.nagai@ai.kyutech.ac.jp>, Hidetoshi NAGAI writes: > Ruby 稼働中の解放の場合はきちんと後始末したいが, > process 終了処理中は Tk インタープリタを終了させる以外の > 後始末処理を呼ばないようにしたいというわけで, > 終了処理中かどうかをなんとか知る方法はないものかと考えた次第です. tk で実験したわけではないのでなんですが、zlib や bdb の経験 からいうと、終了処理中に SEGV するなら、終了処理中ではなくて も SEGV するかもしれない、と思います。 問題は複数のオブジェクトを一度に回収する場合にそれらの finalize 処理が予期しない順序で起動するというところにありま すが、これは普通の GC でも起きるので。 > あるいは,他に何かうまい方法またはこうすべきというような方法は > ありますでしょうか. とりあえず finalize 処理が起動する順序を調べてみるといいんじゃ ないかと思います。 -- [田中 哲][たなか あきら][Tanaka Akira]