summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/resolv.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb
index 6b4e06ad9d..b38c42ab3f 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -657,16 +657,19 @@ class Resolv
end
def request(sender, tout)
- timelimit = Time.now + tout
+ start = Time.now
+ timelimit = start + tout
sender.send
while true
- now = Time.now
- timeout = timelimit - now
+ before_select = Time.now
+ timeout = timelimit - before_select
if timeout <= 0
raise ResolvTimeout
end
select_result = IO.select(@socks, nil, nil, timeout)
if !select_result
+ after_select = Time.now
+ next if after_select < timelimit
raise ResolvTimeout
end
begin