From: Masahiro S. ()
<sa...@to...> - 2006-05-27 03:50:52
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 01:04:06 +0900 > むとうです。 > > On Fri, 26 May 2006 19:42:12 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > なるほど・・・。 > > > 親玉をmarkする際に、そのときに存在するすべてのプロパティ値を > > > 拾ってmarkするようにしてしまう、という感じですね。こちらは > > > コンテナ、GObjectならなんでも実施するという感じですね。 > > > > ちょっと考えてたのですが、「子やプロパティ値について、対応するRubyのオ > > ブジェクトが存在する場合に、それをmarkする」というのは難しくはないです > > が、それ以上のことをするのはtrivialとは言えなさそうです。 > > # これだけだと、そこまで嬉しくなさそうだなぁ... > > GOBJ2RVALのタイミングでもmarkされるとこまではやるってことですかね。 > ちょっと理解できてません(^^;)。 やるのは、GOBJ2RVALのタイミングでなく、RubyのGCのmark phaseでです。 「そこまで嬉しくない」と書いたのは、あるglib側オブジェクトAから直接参照して るBにはRuby側オブジェクトが存在せず、Bから参照されているCにはRuby側オブジェ クトが存在するという場合に、AからCをmarkするのが現状では難しいから。 (Rubyを拡張してGC終了時にフックをかけられるようにすれば出来るけど) > > 上で書いたとこまでなら、暇なときにでも実装しておきます。 とりあえず基本的な部分を実装してコミットしました。 コードの整理はこれからですが、とりあえず問題はないと思います。 > 助かります。久しぶりに復活ですねー。 復活というか、やり残したことを片付けたくなったんですよ。 -- 酒井 政裕 / Masahiro Sakai |