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.



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

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

Instance Method Details

#arm!Object



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

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

#failure!Object



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

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

#limit_reached?Boolean

Returns:

  • (Boolean)


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

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

#success!Object



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

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