class Pwrake::NBIO::Handler
Attributes
host[R]
reader[R]
writer[R]
Public Class Methods
exit(hdl_set)
click to toggle source
# File lib/pwrake/nbio.rb, line 545 def self.exit(hdl_set) hdl_set.each do |hdl| Fiber.new do hdl.exit end.resume end end
kill(hdl_set,sig)
click to toggle source
# File lib/pwrake/nbio.rb, line 537 def self.kill(hdl_set,sig) hdl_set.each do |hdl| Fiber.new do hdl.put_kill(sig) end.resume end end
new(reader,writer,hostname=nil)
click to toggle source
# File lib/pwrake/nbio.rb, line 471 def initialize(reader,writer,hostname=nil) @writer = writer @reader = reader @host = hostname @reader.host = @host @writer.host = @host @exited = false end
Public Instance Methods
exit()
click to toggle source
# File lib/pwrake/nbio.rb, line 498 def exit iow = @writer.io Log.debug "Handler#exit iow=#{iow.inspect}" if defined? Log if @exited Log.debug "Handler<##{object_id}#exit multiple called" if defined? Log bt = caller.join("\n ") Log.debug "Handler#exit bt=\n #{bt}" if defined? Log return end @exited = true exit_msg = "exited" begin @writer.put_line "exit" rescue Errno::EPIPE => e m = "#{e} in #{self.class}.exit iow=#{iow.inspect}" if defined? Log Log.warn m else $stderr.puts m end return end Log.debug "Handler#exit: end: @writer.put_line \"exit\"" if defined? Log # if @reader.class == Reader # MultiReader not work while line = @reader.get_line # here might receive "retire:0" from branch... line.chomp! Log.debug "Handler#exit: #{line} host=#{@host}" if defined? Log return if line == exit_msg end end end
get_line()
click to toggle source
# File lib/pwrake/nbio.rb, line 481 def get_line @reader.get_line end
halt()
click to toggle source
# File lib/pwrake/nbio.rb, line 532 def halt @writer.halt @reader.halt end
put_exit()
click to toggle source
# File lib/pwrake/nbio.rb, line 494 def put_exit @writer.put_line "exit" end
put_kill(sig="INT")
click to toggle source
# File lib/pwrake/nbio.rb, line 489 def put_kill(sig="INT") @writer.io.write("kill:#{sig}\n") @writer.io.flush end
put_line(s)
click to toggle source
# File lib/pwrake/nbio.rb, line 485 def put_line(s) @writer.put_line(s) end