--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: append_features
- !ruby/object:RI::MethodSummary 
  name: define_aliases
- !ruby/object:RI::MethodSummary 
  name: extend_object
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Usage
- !ruby/struct:SM::Flow::P 
  body: "Extend an object and use it like a Mutex object:"
- !ruby/struct:SM::Flow::VERB 
  body: "  require &quot;mutex_m.rb&quot;\n  obj = Object.new\n  obj.extend Mutex_m\n  # ...\n"
- !ruby/struct:SM::Flow::P 
  body: "Or, include Mutex_m in a class to have its instances behave like a Mutex object:"
- !ruby/struct:SM::Flow::VERB 
  body: "  class Foo\n    include Mutex_m\n    # ...\n  end\n\n  obj = Foo.new\n"
constants: []

full_name: Mutex_m
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: mu_extended
- !ruby/object:RI::MethodSummary 
  name: mu_initialize
- !ruby/object:RI::MethodSummary 
  name: mu_lock
- !ruby/object:RI::MethodSummary 
  name: mu_locked?
- !ruby/object:RI::MethodSummary 
  name: mu_synchronize
- !ruby/object:RI::MethodSummary 
  name: mu_try_lock
- !ruby/object:RI::MethodSummary 
  name: mu_unlock
name: Mutex_m
superclass: 
