class Tennis::Backend::RabbitQueue

Public Class Methods

new() click to toggle source
# File lib/tennis/backend/rabbit/queue.rb, line 5
def initialize
  @mutex = Mutex.new
  @queue = []
  @received = ConditionVariable.new
end

Public Instance Methods

<<(x) click to toggle source
# File lib/tennis/backend/rabbit/queue.rb, line 11
def <<(x)
  @mutex.synchronize do
    @queue << x
    @received.signal
  end
end
pop(timeout = nil) click to toggle source
# File lib/tennis/backend/rabbit/queue.rb, line 18
def pop(timeout = nil)
  @mutex.synchronize do
    @received.wait(@mutex, timeout) if @queue.empty?
    @queue.shift
  end
end