In message <20010611185642638.JLGN.18262.t-mta2.odn.ne.jp / mta2.odn.ne.jp>
adzumi / denpa.org writes:

> ちょっと考えてみたんですが、こういうクラスだとまだ普通(?)でしょ
> うか?

MailBox で考えるんなら素直に owner だけが読みだせる Queue を考えますね.

    require "thread"
    
    class MailBox
      def iniaitlize(owner = Thread.current)
        @owner = owner
        @queue = Queue.new
      end
    
      def push(obj)
        @queue.push(obj)
      end
    
      def pop
        raise "permission denied." if Thread.current != @owner
        @queue.pop
      end
    end
    
    MailBoxes = {}
    
    t1 = Thread.new { MailBoxes[Thread.current] = MailBox.new; .... }
    # $m1 = MailBox.new(t1) ってな書き方もできる.だからどうしたという
    # 話はある.

って感じで.

# 継承するでもなく delegate.rb を使うでもないあたりがひねくれてる :-P


Global constant な MailBoxes が気に入らないなら Singleton で何かかぶせ
る,かな.


-- 
柳川和久 @ 東大阪市 . 大阪府                                  June 12, 2001
What can't be seen is what can't be there.