Method: Redborder::KafkaNotifier::MessageQueue#pop_all

Defined in:
lib/kafka_notifier/message_queue.rb

#pop_allObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/kafka_notifier/message_queue.rb', line 34

def pop_all
  @mutex.synchronize do
    @recieved.wait(@mutex, @timeout) while @queue.empty?
    to_return = []

    if @queue.size >= @limit
      to_return = @queue[0..(@limit - 1)]
      @queue = @queue[@limit..-1]
    else
      @recieved.wait(@mutex, @timeout)
      to_return = @queue.dup
      @queue.clear
    end

    return to_return
  end
end