Class: ConvenientService::Support::ThreadSafeCounter

Inherits:
Counter
  • Object
show all
Defined in:
lib/convenient_service/support/thread_safe_counter.rb

Instance Attribute Summary

Attributes inherited from Counter

#current_value, #initial_value, #max_value, #min_value

Instance Method Summary collapse

Constructor Details

#initializevoid



14
15
16
17
18
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 14

def initialize(...)
  super

  @lock = ::Mutex.new
end

Instance Method Details

#bdecrementObject

‘bdecrement` means boolean decrement. Works exactly in the same way as `decrement` except returns a boolean value. If decremented successfully then returns `true`, otherwise - returns `false`.

See Also:



113
114
115
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 113

def bdecrement(...)
  @lock.synchronize { super }
end

#bincrementObject

‘bincrement` means boolean increment. Works exactly in the same way as `increment` except returns a boolean value. If incremented successfully then returns `true`, otherwise - returns `false`.

See Also:



71
72
73
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 71

def bincrement(...)
  @lock.synchronize { super }
end

#current_value=Object



29
30
31
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 29

def current_value=(...)
  @lock.synchronize { super }
end

#decrementObject

See Also:



84
85
86
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 84

def decrement(...)
  @lock.synchronize { super }
end

#decrement!Object

See Also:



97
98
99
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 97

def decrement!(...)
  @lock.synchronize { super }
end

#incrementObject

See Also:



42
43
44
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 42

def increment(...)
  @lock.synchronize { super }
end

#increment!Object

See Also:



55
56
57
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 55

def increment!(...)
  @lock.synchronize { super }
end

#resetObject

See Also:



123
124
125
# File 'lib/convenient_service/support/thread_safe_counter.rb', line 123

def reset(...)
  @lock.synchronize { super }
end