こんばんは、ZnZです。

Singletonのinstanceが複数になることがあります。
とりあえずこの場合は外側のinstanceをThread.newの前に
持ってくれば回避できましたが、使い方を気にしなきゃ
いけないクラスというのは使いにくいという話が
あったので、どうにかならないでしょうか?


#!/usr/local/bin/ruby

require 'singleton'

class C
  include Singleton
  def initialize
    Thread.pass # 実際には普通の処理をしているだけ。
  end
end

Thread.new do
  p C.instance.id
end
p C.instance.id
# 2つのinstanceのidが違う。


--- 
ZnZ(ゼット エヌ ゼット)
西山和広(Kazuhiro Nishiyama)
mailto:nishiyama / mx1.tiki.ne.jp