diff options
Diffstat (limited to 'lib/yahns/sendfile_compat.rb')
-rw-r--r-- | lib/yahns/sendfile_compat.rb | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/lib/yahns/sendfile_compat.rb b/lib/yahns/sendfile_compat.rb deleted file mode 100644 index 8bd4622..0000000 --- a/lib/yahns/sendfile_compat.rb +++ /dev/null @@ -1,24 +0,0 @@ -# -*- encoding: binary -*- -# Copyright (C) 2013-2016 all contributors <yahns-public@yhbt.net> -# License: GPL-3.0+ (https://www.gnu.org/licenses/gpl-3.0.txt) -# frozen_string_literal: true - -module Yahns::SendfileCompat # :nodoc: - def trysendfile(io, offset, count) - return 0 if count == 0 - count = 0x4000 if count > 0x4000 - buf = Thread.current[:yahns_sfbuf] ||= ''.dup - io.pos = offset - 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! - end while true - end -end |