[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30066] Re: merge YARV

From: SASADA Koichi <ko1@...>
Date: 2007-01-03 14:24:04 UTC
List: ruby-dev #30066
 ささだです。

Masatoshi SEKI wrote:
> YARVでいま使える排他制御の仕組みにはなにがありますか?
> 
> 全体を停める必要はないので、MutexなりMonitorなりに書き直しても
> 大丈夫ですよ。

 Mutex クラスが組み込みになっているので、そちらを利用していただければと
思います。恐らく、Mutex#synchronize で用は足りるのではないかと思います。

 Thread.exclusive を、

$global_lock = Mutex.new
class Thread
  def self.exclusive
    $global_lock.synchronize{
      yield
    }
  end
end

というふうに、「Thread.exclusiveで実行しているスレッドはたかだか一個しか
ない」という意味にするのはアリでしょうかね? 同じ名前で違う挙動にするの
は混乱の元かな。

-- 
// SASADA Koichi at atdot dot net



In This Thread