superclass=
type=module
library=mutex_m
extended=
included=

åƱǤ [[c:Mutex]] Υ⥸塼ǤǤ饹
[[m:Module#include]] 뤳ȤǤΥ饹 Mutex ǽ뤳ȤǤޤ
ޤ̤Υ֥Ȥ [[m:Object#extend]] ˤ Mutex ˤǤޤ

Υ⥸塼ˤåϺԲǽǤǽƱʤɬפʾ
[[c:Sync_m]] ѤͤƤ

mu_פդʤ᥽å([[m:Mutex_m#lock]], [[m:Mutex_m#synchronize]], 
[[m:Mutex_m#locked?]], [[m:Mutex_m#try_lock]], [[m:Mutex_m#unlock]])
ϥ⥸塼includeˤޤ

[[ruby-list:1991]]

=== 
饹 [[m:Module#include]] 
  class Foo
    include Mutex_m
    ...
  end
  obj = Foo.new
  obj.synchronize do 
    # ΰ(critical section)
    ...
  end

֥Ȥ [[m:Object#extend]] 
  require "mutex_m"
  obj = Object.new
  obj.extend(Mutex_m)
  obj.lock
  # ΰ(critical section)  
  ... 
  obj.unlock
