# module Mutex_m

# mutex_m.rb¶ ↑

When 'mutex_m' is required, any object that extends or includes `Mutex_m` will be treated like a `Mutex`.

Start by requiring the standard library `Mutex_m`:

    require "mutex_m.rb"

From here you can extend an object with `Mutex` instance methods:

    obj = Object.new
    obj.extend Mutex_m

Or mixin `Mutex_m` into your module to your class inherit `Mutex` instance methods — remember to call super() in your class initialize method.

    class Foo
      include Mutex_m
      def initialize
        # ...
        super()
      end
      # ...
    end
    obj = Foo.new
    # this obj can be handled like Mutex

### Constants

VERSION

### Public Instance Methods

mu_lock() click to toggle source

See `Mutex#lock`

    # File lib/mutex_m.rb, line 92
    def mu_lock
      @_mutex.lock
    end

mu_locked?() click to toggle source

See `Mutex#locked?`

    # File lib/mutex_m.rb, line 82
    def mu_locked?
      @_mutex.locked?
    end

mu_synchronize(&block) click to toggle source

See `Mutex#synchronize`

    # File lib/mutex_m.rb, line 77
    def mu_synchronize(&block)
      @_mutex.synchronize(&block)
    end

mu_try_lock() click to toggle source

See `Mutex#try_lock`

    # File lib/mutex_m.rb, line 87
    def mu_try_lock
      @_mutex.try_lock
    end

mu_unlock() click to toggle source

See `Mutex#unlock`

    # File lib/mutex_m.rb, line 97
    def mu_unlock
      @_mutex.unlock
    end

sleep(timeout = nil) click to toggle source

See `Mutex#sleep`

    # File lib/mutex_m.rb, line 102
    def sleep(timeout = nil)
      @_mutex.sleep(timeout)
    end