Class: Higgs::OptimisticLockManager
- Inherits:
-
LockManager
- Object
- LockManager
- Higgs::OptimisticLockManager
- Defined in:
- lib/higgs/lock.rb
Constant Summary collapse
- CVS_ID =
for ident(1)
'$Id: lock.rb 841 2008-12-24 09:23:20Z toki $'
Instance Method Summary collapse
-
#initialize(*args) ⇒ OptimisticLockManager
constructor
A new instance of OptimisticLockManager.
- #transaction(read_only = false) ⇒ Object
Methods inherited from LockManager
Constructor Details
#initialize(*args) ⇒ OptimisticLockManager
Returns a new instance of OptimisticLockManager.
131 132 133 134 |
# File 'lib/higgs/lock.rb', line 131 def initialize(*args) super @critical_lock = Mutex.new end |
Instance Method Details
#transaction(read_only = false) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/higgs/lock.rb', line 136 def transaction(read_only=false) r = nil @tx_lock.read_lock.synchronize{ if (read_only) then lock_handler = CriticalRegionLockHandler.new(@critical_lock) else lock_handler = CollisionCheckLockHandler.new(@critical_lock) end r = yield(lock_handler) } r end |