class SplitIoClient::Cache::Adapters::MemoryAdapters::QueueAdapter
Memory adapter implementation, which stores everything inside queue
def add_to_queue(data)
def add_to_queue(data) fail ThreadError if @current_size.value >= @max_size @queue.push(data) @current_size.increment end
def clear(_ = nil)
def clear(_ = nil) @queue = Queue.new @current_size.value = 0 end
def clear
def clear get_batch(@current_size.value) end
def empty?
def empty? @queue.empty? end
def get_batch(size)
def get_batch(size) items = [] size.times do items << @queue.pop(true) @current_size.decrement end items rescue ThreadError items end
def initialize(max_size)
def initialize(max_size) @max_size = max_size @queue = Queue.new @current_size = Concurrent::AtomicFixnum.new(0) end
def length
def length @current_size.value end