[#9445] thread.rb — m_seki@...

18 messages 2000/03/16
[#9446] Re: thread.rb — matz@... (Yukihiro Matsumoto) 2000/03/17

[#9460] Re: thread.rb — m_seki@... 2000/03/21

[#9462] Re: thread.rb — matz@... (Yukihiro Matsumoto) 2000/03/21

まつもと ゆきひろです

[#11281] Re: thread.rb — Masatoshi SEKI <m_seki@...> 2000/10/22

[#9498] timeout しない timeout — ARIMA Yasuhiro <fit0298@...>

有馬です。

20 messages 2000/03/26
[#9506] Re: timeout しない timeout — matz@... (Yukihiro Matsumoto) 2000/03/27

まつもと ゆきひろです

[#9509] Re: timeout しない timeout — gotoken@... (GOTO Kentaro) 2000/03/27

In message "[ruby-dev:9506] Re: timeout しない timeout"

[ruby-dev:9446] Re: thread.rb

From: matz@... (Yukihiro Matsumoto)
Date: 2000-03-17 07:22:22 UTC
List: ruby-dev #9446
In message "[ruby-dev:9445] thread.rb"
    on 00/03/16, m_seki@mva.biglobe.ne.jp <m_seki@mva.biglobe.ne.jp> writes:

|thread.rb に入っているスレッドの同期メカニズムなんですが、
|(Queue, Mutex等)資源待ちのスレッドがだれかに exit された場合、
|run や wakeup するときに失敗してしまうと思います。

あー、確かに。そういうことはありえますね。

|またMutex, Queueでは@waitingの先頭のスレッドだけを run/wakeup 
|しますが、@waiting中のすべてのスレッドをwakeupしないとまずい
|局面がないですか。

以前はそうだったんですが、結局Queueで値をとれたり、Mutexでロッ
クを確保できるのは1スレッドだけですから、先頭のひとつだけで
良かろうと言う判断で今のようになってます。ただ、私、スレッド
系はあまり得意でないので、まずいことがあれば教えてください。

|以下 wakeup/run で ThreadError を rescue するパッチです。
|QueueとMutexは試しましたがSizedQueue、状態変数はやってません。

当ててみます。

In This Thread