まつもと ゆきひろです

In message "[ruby-list:13244] Re:"
    on 99/03/29, 石塚圭樹 <keiju / Rational.Com> writes:

|あと, もうひとつ問題があって:
|
|  obj = Object.new
|  ref = WeakRef.new(obj)
|  WeakRef.new(obj)
|  # Array.new(100000000)
|  ObjectSpace.garbage_collect
|  ref[]
|
|なんてやると. 参照先がまだGCされていないのにGCされたことになっちゃうっ
|てのもありますね.  

なかなか難しいものですね.

|ところで,
|
|                ObjectSpace.add_finalizer(lambda{|id|
|			      rids = ID_MAP
|			      if rids
|				for rid in rids
|				  ID_REV_MAP[rid] = nil
|				  ObjectSpace._id2ref(rid).instace_eval{@__id = nil}
|				end
|				ID_MAP[id] = nil
|			      end
|
|見たいな感じにすると, __getobj__でID_MAPをいちいち見ないで済むと思うん
|ですがどうでしょうね?

まあ,それはそうですが,ID_MAPのアクセスをそんなに毛嫌いする
理由もないような.