Class: Sidekiq::Processor::Counter
- Inherits:
-
Object
- Object
- Sidekiq::Processor::Counter
- Defined in:
- lib/sidekiq/processor.rb
Overview
Ruby doesn’t provide atomic counters out of the box so we’ll implement something simple ourselves. bugs.ruby-lang.org/issues/14706
Instance Method Summary collapse
- #incr(amount = 1) ⇒ Object
-
#initialize ⇒ Counter
constructor
A new instance of Counter.
- #reset ⇒ Object
Constructor Details
#initialize ⇒ Counter
Returns a new instance of Counter.
217 218 219 220 |
# File 'lib/sidekiq/processor.rb', line 217 def initialize @value = 0 @lock = Mutex.new end |
Instance Method Details
#incr(amount = 1) ⇒ Object
222 223 224 |
# File 'lib/sidekiq/processor.rb', line 222 def incr(amount = 1) @lock.synchronize { @value += amount } end |
#reset ⇒ Object
226 227 228 229 230 231 232 |
# File 'lib/sidekiq/processor.rb', line 226 def reset @lock.synchronize { val = @value @value = 0 val } end |