Re: class local instance variable

朴 芝印です。
2007/2/18, Yukihiro M. [email protected]:

たしかに元のクラスとinstance_evalではわけが違うんですね。でも
instance_evalとか、特異クラスだとそのオブジェクトのscopeで何かをする、と
言う感じはあるんですね。ユーザの一人としてはアクセスできると嬉しいと思い
ます。

で、もともと問題だったSingletonの方ですが、こんなのはどうでしょう。

  klass.instance_eval {
    @__instance__ = nil
    @__mutex__ = Mutex.new
  }

の変わりに

  def klass.__init__
    @__instance__ = nil
    @__mutex__ = Mutex.new
  end
  klass.__init__

make test-allで確認しましたが、やっぱちょっと見にくいですね。