Class: Semlogr::Utils::BoundedQueue
- Inherits:
-
Object
- Object
- Semlogr::Utils::BoundedQueue
- Defined in:
- lib/semlogr/utils/bounded_queue.rb
Instance Method Summary collapse
-
#initialize(max_size) ⇒ BoundedQueue
constructor
A new instance of BoundedQueue.
- #pop ⇒ Object
- #pop_count(count) ⇒ Object
- #push(item) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(max_size) ⇒ BoundedQueue
Returns a new instance of BoundedQueue.
8 9 10 11 12 |
# File 'lib/semlogr/utils/bounded_queue.rb', line 8 def initialize(max_size) @max_size = max_size @queue = Queue.new @queue_mutex = Mutex.new end |
Instance Method Details
#pop ⇒ Object
26 27 28 |
# File 'lib/semlogr/utils/bounded_queue.rb', line 26 def pop @queue.pop end |
#pop_count(count) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/semlogr/utils/bounded_queue.rb', line 30 def pop_count(count) items = [] @queue_mutex.synchronize do items << @queue.pop until @queue.empty? || items.size == count end items end |
#push(item) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/semlogr/utils/bounded_queue.rb', line 18 def push(item) @queue_mutex.synchronize do return if size >= @max_size @queue << item end end |
#size ⇒ Object
14 15 16 |
# File 'lib/semlogr/utils/bounded_queue.rb', line 14 def size @queue.size end |