Class: Synapse::Repository::PessimisticLockManager

Inherits:
LockManager
  • Object
show all
Defined in:
lib/synapse/repository/pessimistic_lock_manager.rb

Overview

Implementation of a lock manager that blocks until a lock can be obtained

Instance Method Summary collapse

Constructor Details

#initializeundefined



6
7
8
# File 'lib/synapse/repository/pessimistic_lock_manager.rb', line 6

def initialize
  @manager = IdentifierLockManager.new
end

Instance Method Details

#obtain_lock(aggregate_id) ⇒ undefined

Parameters:

  • aggregate_id (Object)

Returns:

  • (undefined)


18
19
20
# File 'lib/synapse/repository/pessimistic_lock_manager.rb', line 18

def obtain_lock(aggregate_id)
  @manager.obtain_lock aggregate_id
end

#release_lock(aggregate_id) ⇒ undefined

Parameters:

  • aggregate_id (Object)

Returns:

  • (undefined)


24
25
26
# File 'lib/synapse/repository/pessimistic_lock_manager.rb', line 24

def release_lock(aggregate_id)
  @manager.release_lock aggregate_id
end

#validate_lock(aggregate) ⇒ Boolean

Parameters:

  • aggregate (AggregateRoot)

Returns:

  • (Boolean)


12
13
14
# File 'lib/synapse/repository/pessimistic_lock_manager.rb', line 12

def validate_lock(aggregate)
  @manager.owned? aggregate.id
end