diff options
Diffstat (limited to 'lib/rainbows/timed_read.rb')
-rw-r--r-- | lib/rainbows/timed_read.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rainbows/timed_read.rb b/lib/rainbows/timed_read.rb index 0637cef..dd7939e 100644 --- a/lib/rainbows/timed_read.rb +++ b/lib/rainbows/timed_read.rb @@ -3,6 +3,10 @@ module Rainbows::TimedRead G = Rainbows::G # :nodoc: + def read_expire + Time.now + G.kato + end + def kgio_wait_readable IO.select([self], nil, nil, G.kato) end @@ -14,7 +18,7 @@ module Rainbows::TimedRead case rv = kgio_tryread(16384, buf) when :wait_readable return if expire && expire < Time.now - expire ||= Time.now + G.kato + expire ||= read_expire kgio_wait_readable else return rv |