まつもと ゆきひろです
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のアクセスをそんなに毛嫌いする
理由もないような.