まつもと ゆきひろです In message "Re: [ruby-dev:38613] [BUG: trunk] called on terminated object" on Mon, 15 Jun 2009 06:18:27 +0900, SASADA Koichi <ko1 / atdot.net> writes: | ObjectSpace.each_object で inspect してまわっていると,"called on |terminated object" と言われてしまうのですが,とくに問題ないんでしたっけ? 問題ないことはないですね。 | ObjectSpace.each_object は klass の値をチェックしてるように思うんです |が,なんでこんなことになるんだろう. 調べてみたんですが、すでに参照されていない配列が生きていない オブジェクトを指しているようです。each_objectの直前にGCを呼 ぶと発生しません。 これに対する考え方はたぶん二つあって * each_objectはそういうものである * each_objectのループ前に内部でGCを呼ぶ のいずれかになると思います。気分的には後者かなあ。