class Pwrake::NBIO::FiberReaderQueue
Public Class Methods
new(reader)
click to toggle source
# File lib/pwrake/nbio.rb, line 432 def initialize(reader) @reader = reader @q = [] @waiter = [] @halting = false end
Public Instance Methods
deq()
click to toggle source
# File lib/pwrake/nbio.rb, line 445 def deq while @q.empty? return nil if @halting @waiter.push(Fiber.current) @reader.select_io end @q.shift end
Also aliased as: get_line
enq(x)
click to toggle source
# File lib/pwrake/nbio.rb, line 439 def enq(x) @q.push(x) f = @waiter.shift f.resume if f end
halt()
click to toggle source
# File lib/pwrake/nbio.rb, line 456 def halt @halting = true while f = @waiter.shift f.resume end ensure @halting = false end