diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/webrick/utils.rb | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Fri Oct 14 10:48:37 2016 Eric Wong <e@80x24.org> + + * lib/webrick/utils.rb (TimeoutHandler): use monotonic clock + (watch): ditto + Thu Oct 13 19:41:32 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * io.c (copy_stream_body): use IO to write to copy to duplex IO. diff --git a/lib/webrick/utils.rb b/lib/webrick/utils.rb index eb3b907ecf..8b34b6654f 100644 --- a/lib/webrick/utils.rb +++ b/lib/webrick/utils.rb @@ -134,7 +134,8 @@ module WEBrick # +time+:: Timeout in seconds # +exception+:: Exception to raise when timeout elapsed def TimeoutHandler.register(seconds, exception) - instance.register(Thread.current, Time.now + seconds, exception) + at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + seconds + instance.register(Thread.current, at, exception) end ## @@ -163,7 +164,7 @@ module WEBrick def watch to_interrupt = [] while true - now = Time.now + now = Process.clock_gettime(Process::CLOCK_MONOTONIC) wakeup = nil to_interrupt.clear TimeoutMutex.synchronize{ |