module FiniteMachine::TwoPhaseLock

Mixin to provide lock to a {Threadable}

@api private

Public Class Methods

lock() click to toggle source

Create synchronization lock

@return [Sync]

@api private

# File lib/finite_machine/two_phase_lock.rb, line 15
def lock
  @lock = Sync.new
end
synchronize(mode, &block) click to toggle source

Synchronize given block of code

@param [Symbol] mode

the lock mode out of :SH, :EX, :UN

@return [nil]

@api private

# File lib/finite_machine/two_phase_lock.rb, line 28
def synchronize(mode, &block)
  lock.synchronize(mode, &block)
end

Private Instance Methods

lock() click to toggle source

Create synchronization lock

@return [Sync]

@api private

# File lib/finite_machine/two_phase_lock.rb, line 15
def lock
  @lock = Sync.new
end
synchronize(mode, &block) click to toggle source

Synchronize given block of code

@param [Symbol] mode

the lock mode out of :SH, :EX, :UN

@return [nil]

@api private

# File lib/finite_machine/two_phase_lock.rb, line 28
def synchronize(mode, &block)
  lock.synchronize(mode, &block)
end