class Semlogr::Utils::BoundedQueue
Public Class Methods
new(max_size)
click to toggle source
# 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
Public Instance Methods
pop()
click to toggle source
# File lib/semlogr/utils/bounded_queue.rb, line 26 def pop @queue.pop end
pop_count(count)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/semlogr/utils/bounded_queue.rb, line 14 def size @queue.size end