module Libis::Tools::ThreadSafe

Module to safely create a mutex for creating thread safe classes.

Usage: include this module in a class or extend a module with this one.

Public Class Methods

included(klass) click to toggle source

@!visibility private

# File lib/libis/tools/thread_safe.rb, line 24
def self.included(klass)
  klass.extend(MutexCreator)
  # noinspection RubyResolve
  klass.class_mutex = Monitor.new
end

Public Instance Methods

mutex() click to toggle source

Access the instance mutex

# File lib/libis/tools/thread_safe.rb, line 12
def mutex
  self.class.class_mutex.synchronize do
    @mutex ||= Monitor.new
  end
end