class AwesomeExplain::Queue::SimpleQueue

Public Class Methods

new() click to toggle source
# File lib/awesome_explain/queue/simple_queue.rb, line 42
def initialize
  @queue = Queue.new
  # Thread.new do
  #   puts 'while true ==============================='
  #   command = @queue.pop(false)
  #   # command.run if command
  # end
  # @read_io, @write_io = IO.pipe
end

Public Instance Methods

<<(o) click to toggle source
# File lib/awesome_explain/queue/simple_queue.rb, line 52
def <<(o)
  # pop(false) until @queue.size < 2
  if @queue.size >= 2
    items = []
    while @queue.size >= 2
      items << @queue.pop
    end
    Thread.new { sleep 2; puts "Poped #{items}"; puts items.inspect }
  end
  puts "Adding to queue @@@@@@@@@@@@@"
  @queue << o
  # @write_io << '.'
  self
end
pop(nonblock=false) click to toggle source
# File lib/awesome_explain/queue/simple_queue.rb, line 67
def pop(nonblock=false)
  # return unless @queue.size >= 5
  # @queue.size.times.each do

  # end
  puts Thread.current.inspect
  o = @queue.pop(nonblock)
  # @read_io.read(1)
  puts "<------ Element poped ------>"
  puts o
  o
end
size() click to toggle source
# File lib/awesome_explain/queue/simple_queue.rb, line 80
def size
  @queue.size
end
to_io() click to toggle source
# File lib/awesome_explain/queue/simple_queue.rb, line 84
def to_io
  @read_io
end