From: "akira yamada / やまだあきら" Date: 2001-12-26T22:12:26+09:00 Subject: [ruby-dev:15551] Re: WeakRef and load(file, true) >>>>> In [ruby-dev : No.15042] >>>>> matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |調べて見たところ、GC.startを明示的に呼んでいる所ではオブジェクトが > |まだ生きていると判定され、二度目のload()の中でGCが起動して > |オブジェクトは開放されるのですが、割り込み禁止状態になっているので、 > |finalizerの実行が次回に遅延されるために起こるようです。 > | > |WeakRef自体の限界でしょうか。 > > まあそんな感じです。今回はこんなふうに逃げようかなと思ってい > ます。 > > --- lib/weakref.rb 2000/07/27 09:49:33 1.7 > +++ lib/weakref.rb 2001/11/06 09:47:39 > @@ -62,3 +62,7 @@ > end > - ObjectSpace._id2ref(@__id) > + begin > + ObjectSpace._id2ref(@__id) > + rescue RangeError > + raise RefError, "Illegal Reference - probably recycled", caller(2) > + end > end このパッチが1.6.6に適用されていません. -- やまだ あきら (akira@arika.org, akira@ruby-lang.org, akira@debian.org or akira@linux.or.jp)