Connection::waitForSyncReply() uses wall time clock for timeout
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Jul 2019 18:01:39 +0000 (18:01 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Jul 2019 18:01:39 +0000 (18:01 +0000)
https://bugs.webkit.org/show_bug.cgi?id=198712
Due to a nature of the system time (it might not be set, jump, be off
by a lot) it is better to use monotonically increasing time which is
exactly what's used in a similar place i.e. Connection::waitForMessage()

Patch by Pawel Stanek <p.stanek@metrological.com> on 2019-07-12
Reviewed by Alex Christensen.

* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247392 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/Platform/IPC/Connection.cpp

index f5da86c..4c0c3f1 100644 (file)
@@ -1,3 +1,16 @@
+2019-07-12  Pawel Stanek  <p.stanek@metrological.com>
+
+        Connection::waitForSyncReply() uses wall time clock for timeout
+        https://bugs.webkit.org/show_bug.cgi?id=198712
+        Due to a nature of the system time (it might not be set, jump, be off
+        by a lot) it is better to use monotonically increasing time which is
+        exactly what's used in a similar place i.e. Connection::waitForMessage()
+        
+        Reviewed by Alex Christensen.
+
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::waitForSyncReply):
+
 2019-07-12  Timothy Hatcher  <timothy@apple.com>
 
         Drop DarkModeCSSEnabled as an experimental feature and always enable it.
index 2d0403c..8f69c87 100644 (file)
@@ -590,7 +590,7 @@ std::unique_ptr<Decoder> Connection::sendSyncMessage(uint64_t syncRequestID, std
 std::unique_ptr<Decoder> Connection::waitForSyncReply(uint64_t syncRequestID, Seconds timeout, OptionSet<SendSyncOption> sendSyncOptions)
 {
     timeout = timeoutRespectingIgnoreTimeoutsForTesting(timeout);
-    WallTime absoluteTime = WallTime::now() + timeout;
+    MonotonicTime absoluteTime = MonotonicTime::now() + timeout;
 
     willSendSyncMessage(sendSyncOptions);