about summary refs log tree commit homepage
path: root/lib/yahns/sendfile_compat.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/yahns/sendfile_compat.rb')
-rw-r--r--lib/yahns/sendfile_compat.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/yahns/sendfile_compat.rb b/lib/yahns/sendfile_compat.rb
index da2a9ec..6d4cc56 100644
--- a/lib/yahns/sendfile_compat.rb
+++ b/lib/yahns/sendfile_compat.rb
@@ -11,13 +11,13 @@ module Yahns::SendfileCompat
     str = io.read(count, buf) or return # nil for EOF
     n = 0
     case rv = kgio_trywrite(str)
-    when String # partial write, keep trying
-      n += (str.size - rv.size)
-      str = rv
     when :wait_writable, :wait_readable
       return n > 0 ? n : rv
     when nil
       return n + str.size # yay!
+    else # String # partial write, keep trying
+      n += (str.size - rv.size)
+      str = rv
     end while true
   end
 end