[#41278] [BUG:1.9] BINARY should not be ASCII-compatible — Yugui <yugui@...>

WXVndWkbJEIkRyQ5ISMbKEIKCgo+IBskQiRHISIkKiQqJGAkTSQzJDMkXiRHJE41RE9AJEclKyVQ

15 messages 2010/05/11

[#41407] [Bug #3339] win32ole test failure — Usaku NAKAMURA <redmine@...>

Bug #3339: win32ole test failure

20 messages 2010/05/25
[#41411] Re: [Bug #3339] win32ole test failure — Masaki Suketa <masaki.suketa@...> 2010/05/25

助田です。

[#41412] Re: [Bug #3339] win32ole test failure — "U.Nakamura" <usa@...> 2010/05/25

こんにちは、なかむら(う)です。

[ruby-dev:41321] Re: MonitorMixin::ConditionVariable#wait timeout

From: Tanaka Akira <akr@...>
Date: 2010-05-15 09:43:53 UTC
List: ruby-dev #41321
2010年5月13日22:19 Masaya TARUI <tarui@prx.jp>:

>> このスレッドはどうやって終了させるんでしょうか。
>
> 元の例に一番近い形では
> m.synchronize { predicate = ture }
> です。
> すばやく止めたいならばpredicateを持たずに、
> m.synchronize { th.raise HogeInterrupt }
> とか仮に外部割込みの制御が入ったら
> th.raise HogeInterrupt だけでもいいはずです。

えー、Thread#raise を使うんですか。

Thread#raise は剣呑なので、避けたほうがいいと思います。
ConditionVariable で避けられるのに、あえて Thread#raise が必要な方法を
とるのはよろしくないんじゃないでしょうか。

>> [ruby-core:27698] の Hongli Lai はそこで ConditionVariable を使っている
>> ように思えます。
>
> 「3 秒ごとに定期処理、シグナルされたらすぐに終了」に対応して、
> 書いてしまいしまいましたが、こちらも本当にもしシグナルされたらすぐ終了でよいのなら
> mutexを取りに行くConditionVariableは効率が悪いので違う仕組みを使った方が良いでしょう。
> 多分違うはずで、そこが私が一番勘違いしていた点だと思います。きっとpredicateによってMutex内で処理を行うのでしょう。
> 元の題材が、シグナルを受けた時に predicateによってMutex内で新しい処理を行うとするならば、それに対応した 「3
> 秒はリソースを開放して定期処理、シグナルされたらすぐに終了」では、多分ですが、無制限のwaitとタイマー割込みを組み合わせた処理を書きます。

すみません。何回か読んだんですが、よく分かりませんでした。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread