前田です。

At Tue, 09 Oct 2001 18:43:23 +0900,
matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> |それで何とかなりそうです。でも、GC 的には global に入れて 
> |rb_global_variable しておいた方が良いような気がしますが、ど
> |うなんでしょう。struct が VALUE を保持していて rb_errinfo の
> |値が違うものに変わったときに GC が行なわれると困るような気が
> |するのですが。
> 
> その心配は当たりです。ひとつrb_global_variableされたハッシュ
> テーブルを持っていて、処理開始から終了まではそこから例外オブ
> ジェクトを参照するというのがよろしいかも(可能なら)。

apr_pool_cleanup_register()でpoolごとのcleanup処理を登録でき
るみたいなので、これでハッシュから要らなくなった例外オブジェクト
を削除するようにした方がよいかもしれませんね。
# 何かApacheのコードみたいですね…と思ったらApache-2.xのコードなのか。

-- 
前田 修吾