Class: Chantier::FailurePolicies::MutexWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/failure_policies.rb

Overview

Wraps a FailurePolicy-compatible object in a Mutex for all method calls.

Instance Method Summary collapse

Constructor Details

#initialize(failure_policy) ⇒ MutexWrapper

Returns a new instance of MutexWrapper.



147
148
149
150
# File 'lib/failure_policies.rb', line 147

def initialize(failure_policy)
  @policy = failure_policy
  @mutex = Mutex.new
end

Instance Method Details

#arm!Object



152
153
154
# File 'lib/failure_policies.rb', line 152

def arm!
  @mutex.synchronize { @policy.arm! }
end

#failure!Object



160
161
162
# File 'lib/failure_policies.rb', line 160

def failure!
  @mutex.synchronize { @policy.failure! }
end

#limit_reached?Boolean

Returns:

  • (Boolean)


164
165
166
# File 'lib/failure_policies.rb', line 164

def limit_reached?
  @mutex.synchronize { @policy.limit_reached? }
end

#success!Object



156
157
158
# File 'lib/failure_policies.rb', line 156

def success!
  @mutex.synchronize { @policy.success! }
end