1 # -*- encoding: binary -*-
4 class Rainbows::Epoll::ResponsePipe
5 include Rainbows::Epoll::State
8 IN = SleepyPenguin::Epoll::IN | SleepyPenguin::Epoll::ET
9 RBUF = Rainbows::EvCore::RBUF
11 def initialize(io, client, body)
12 @io, @client, @body = io, client, body
17 return close if @client.closed?
18 @client.stream_pipe(self) or @client.on_deferred_write_complete
21 @client.handle_error(e)
26 @body.respond_to?(:close) and @body.close
32 io.respond_to?(:kgio_tryread) and return io.kgio_tryread(16384, RBUF)
33 io.read_nonblock(16384, RBUF)