diff --git a/ChangeLog b/ChangeLog index e6434a8ea4..fb7b8e123f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 14 10:48:37 2016 Eric Wong + + * lib/webrick/utils.rb (TimeoutHandler): use monotonic clock + (watch): ditto + Thu Oct 13 19:41:32 2016 Nobuyoshi Nakada * 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{