]> cat aescling's git repositories - mastodon.git/commitdiff
Use CLOCK_MONOTONIC instead of Time.now
authorClaire <claire.github-309c@sitedethib.com>
Wed, 21 Jun 2023 09:21:50 +0000 (11:21 +0200)
committerClaire <claire.github-309c@sitedethib.com>
Thu, 6 Jul 2023 13:30:36 +0000 (15:30 +0200)
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
app/lib/request.rb

index 9d6c0dbfd4677ee7643938c56b6bf48bb1024f96..aaa8ff2918120f4fbc17c60f625c1fdad7e97008 100644 (file)
@@ -24,15 +24,15 @@ class HTTP::Timeout::PerOperation
 
   # Read data from the socket
   def readpartial(size, buffer = nil)
-    @deadline ||= Time.now + @read_timeout
+    @deadline ||= Process.clock_gettime(Process::CLOCK_MONOTONIC) + @read_timeout
 
     timeout = false
     loop do
-      result = @socket.read_nonblock(size, buffer, :exception => false)
+      result = @socket.read_nonblock(size, buffer, exception: false)
 
       return :eof if result.nil?
 
-      remaining_time = @deadline - Time.now
+      remaining_time = @deadline - Process.clock_gettime(Process::CLOCK_MONOTONIC)
       raise HTTP::TimeoutError, "Read timed out after #{@read_timeout} seconds" if timeout || remaining_time <= 0
       return result if result != :wait_readable