From: Nobuyoshi Nakada Date: 2007-03-18T11:46:59+09:00 Subject: [ruby-dev:30621] Re: DL.callback as free function causes errors なかだです。 At Sun, 18 Mar 2007 10:43:11 +0900, sheepman wrote in [ruby-dev:30620]: > DL::PtrData オブジェクトでは ruby が GC をする時に呼ぶ > free function を指定することができます。 聞くからに危険そうな機能ですが。 > しかし、これは segv します。原因を正確に追うことができていないのですが、 > おそらく GC の真最中にブロックが呼ばれることで起きているんだと思います。 > > というわけで、DL::Symbol オブジェクトにcallbackかどうかのフラグを持たせて、 > callback は PtrData の free 関数として指定できないようにパッチを書いてみました。 callbackはfinalizerに変換して登録する、というのはどうでしょうか。 finalizerはGC終了直後に実行されます。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦