まつもと ゆきひろです

In message "[ruby-dev:1526] Re: SizedQueue and some question"
    on 98/02/24, 石塚圭樹 <keiju / rational.com> writes:

|けいじゅ@日本ラショナルソフトウェアです.

|っていみですよね? そうすると, t.run したじゅんばんに @que.pushすること
|になるんです?

Thread.criticalでない場合はrunするとそのままそのスレッドに実
行権が移りますから,t.runした順番になる可能性が高いと思いま
すけど.

|それよか,
|
|  def push(obj)
|    Thread.critical = TRUE
|    while @que.length >= @max
|      @queue_wait.push Thread.current
|      Thread.stop
|-->   Thread.critical = TRUE
|    end
|    super
|  end
|
|とするってのはどうですか? そうすると, 走り出したスレッドが他のスレッド
|をブロックするので順序が保証されるんじゃないですかね?

Thread.criticalな状態でrunされた場合は,スレッドの状態が
runnableになるだけで,次に実行権が渡る順番は不定です.ですか
ら,順序の保証にはならないと思います.そもそも走り出す順番が
不定なんですから.

これはこれで別の意味はあると思うんですが.

                                だからスレッドは苦手
                                まつもと ゆきひろ /:|)