diff options
Diffstat (limited to 'lib/rainbows/event_machine/response_pipe.rb')
-rw-r--r-- | lib/rainbows/event_machine/response_pipe.rb | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/rainbows/event_machine/response_pipe.rb b/lib/rainbows/event_machine/response_pipe.rb index 0ea1eae..1f7b08a 100644 --- a/lib/rainbows/event_machine/response_pipe.rb +++ b/lib/rainbows/event_machine/response_pipe.rb @@ -10,14 +10,13 @@ module Rainbows::EventMachine::ResponsePipe end def notify_readable - begin - @client.write(@io.read_nonblock(16384, RBUF)) - rescue Errno::EINTR - rescue Errno::EAGAIN - return - rescue EOFError - detach + case data = Kgio.tryread(@io, 16384, RBUF) + when String + @client.write(data) + when :wait_readable return + when nil + return detach end while true end |