class BlockingQueue

Public Class Methods

new() click to toggle source
# File lib/wattics-api-client/blocking_queue.rb, line 2
def initialize
  @mutex = Mutex.new
  @queue = []
  @received = ConditionVariable.new
end

Public Instance Methods

<<(x) click to toggle source
# File lib/wattics-api-client/blocking_queue.rb, line 8
def <<(x)
  @mutex.synchronize do
    @queue << x
    @received.signal
  end
end
is_empty?() click to toggle source
# File lib/wattics-api-client/blocking_queue.rb, line 22
def is_empty?
  @queue.empty?
end
pop() click to toggle source
# File lib/wattics-api-client/blocking_queue.rb, line 15
def pop
  @mutex.synchronize do
    @received.wait(@mutex) while is_empty?
    @queue.shift
  end
end