Module: AwesomeExplain::Queue

Defined in:
lib/awesome_explain/queue/simple_queue.rb,
lib/awesome_explain/queue/command.rb

Overview

def pop(blocking = true, timeout = nil)

    @mutex.synchronize do
      if blocking
        if timeout.nil?
          while @elems.empty?
            @cond_var.wait(@mutex)
          end
        else
          timeout_time = Time.now.to_f + timeout
          while @elems.empty? && (remaining_time = timeout_time - Time.now.to_f) > 0
            @cond_var.wait(@mutex, remaining_time)
          end
        end
      end
      raise ThreadError, 'queue empty' if @elems.empty?
      sleep 1
      @elems.shift
    end
  end
end

end

Defined Under Namespace

Classes: Command, SimpleQueue