Class: Timber::LogDevices::HTTP::DroppingSizedQueue
- Inherits:
-
SizedQueue
- Object
- SizedQueue
- Timber::LogDevices::HTTP::DroppingSizedQueue
- Defined in:
- lib/timber/log_devices/http/dropping_sized_queue.rb
Overview
Works like SizedQueue, but drops message instead of blocking. Pass one of these in to HTTP#intiialize via the :request_queue option if you’d prefer to drop messages in the event of a buffer overflow instead of applying back pressure.
Instance Method Summary collapse
-
#push(obj) ⇒ Object
Returns true/false depending on whether the queue is full or not.
Instance Method Details
#push(obj) ⇒ Object
Returns true/false depending on whether the queue is full or not
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/timber/log_devices/http/dropping_sized_queue.rb', line 9 def push(obj) @mutex.synchronize do return false unless @que.length < @max @que.push obj begin t = @waiting.shift t.wakeup if t rescue ThreadError retry end return true end end |