Module: Trifle::Stats::BufferRegistry
- Defined in:
- lib/trifle/stats/buffer.rb
Class Method Summary collapse
- .cancel_pending(buffer) ⇒ Object
- .enqueue_pending(buffer) ⇒ Object
- .flush_all ⇒ Object
- .pending? ⇒ Boolean
- .register(buffer) ⇒ Object
- .run_pending! ⇒ Object
- .unregister(buffer) ⇒ Object
Class Method Details
.cancel_pending(buffer) ⇒ Object
29 30 31 32 33 |
# File 'lib/trifle/stats/buffer.rb', line 29 def cancel_pending(buffer) pending_mutex.synchronize do pending.delete(buffer) end end |
.enqueue_pending(buffer) ⇒ Object
23 24 25 26 27 |
# File 'lib/trifle/stats/buffer.rb', line 23 def enqueue_pending(buffer) pending_mutex.synchronize do pending << buffer unless pending.include?(buffer) end end |
.flush_all ⇒ Object
48 49 50 51 52 |
# File 'lib/trifle/stats/buffer.rb', line 48 def flush_all run_pending! snapshot = registry_mutex.synchronize { registry.dup } snapshot.each(&:shutdown!) end |
.pending? ⇒ Boolean
44 45 46 |
# File 'lib/trifle/stats/buffer.rb', line 44 def pending? pending_mutex.synchronize { pending.any? } end |
.register(buffer) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/trifle/stats/buffer.rb', line 7 def register(buffer) registry_mutex.synchronize do registry << buffer install_shutdown_hooks end end |
.run_pending! ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/trifle/stats/buffer.rb', line 35 def run_pending! snapshot = pending_mutex.synchronize do buffers = pending.dup pending.clear buffers end snapshot.each(&:flush_from_registry!) end |
.unregister(buffer) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/trifle/stats/buffer.rb', line 14 def unregister(buffer) registry_mutex.synchronize do registry.delete(buffer) end pending_mutex.synchronize do pending.delete(buffer) end end |