Browse Source

[Pal/Linux] _DkSystemTimeQuery() returns REALTIME instead of MONOTONIC now

_DkSystemTimeQuery() should return real time (CLOCK_REALTIME). The previously used
CLOCK_MONOTONIC returns time elapsed from an unspecified starting point
and is thus incorrect to use for system time.
Isaku Yamahata 4 years ago
parent
commit
eeb2daa2bf
1 changed files with 3 additions and 3 deletions
  1. 3 3
      Pal/src/host/Linux/db_misc.c

+ 3 - 3
Pal/src/host/Linux/db_misc.c

@@ -40,7 +40,7 @@ unsigned long _DkSystemTimeQueryEarly (void)
     struct timespec time;
     int ret;
 
-    ret = INLINE_SYSCALL(clock_gettime, 2, CLOCK_MONOTONIC, &time);
+    ret = INLINE_SYSCALL(clock_gettime, 2, CLOCK_REALTIME, &time);
 
     /* Come on, gettimeofday mostly never fails */
     if (IS_ERR(ret))
@@ -71,10 +71,10 @@ unsigned long _DkSystemTimeQuery (void)
 
 #if USE_VDSO_GETTIME == 1
     if (linux_state.vdso_clock_gettime) {
-        ret = linux_state.vdso_clock_gettime(CLOCK_MONOTONIC, &time);
+        ret = linux_state.vdso_clock_gettime(CLOCK_REALTIME, &time);
     } else {
 #endif
-        ret = INLINE_SYSCALL(clock_gettime, 2, CLOCK_MONOTONIC, &time);
+        ret = INLINE_SYSCALL(clock_gettime, 2, CLOCK_REALTIME, &time);
 #if USE_VDSO_GETTIME == 1
     }
 #endif