fastboot: Use clock_gettime(CLOCK_MONOTONIC) in now()

If the system time changes during the execution of fastboot we might
see some strange output such as:

Sending sparse 'super' 4/20 (254972 KB)            OKAY [-516.263s]

Fix it by changing now() to use clock_gettime(CLOCK_MONOTONIC).
I confirmed that all callers of now() are using it for relative time
and not time since the epoch.

Change-Id: Ic3e9442c2ab21dfb076bfed88915085a183754b0
This commit is contained in:
Peter Collingbourne 2024-02-07 16:55:49 -08:00
parent da6329bd6f
commit cc1bf34ba6

View file

@ -31,7 +31,7 @@
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <time.h>
#include <android-base/parseint.h>
#include <android-base/strings.h>
@ -43,9 +43,9 @@ using android::base::borrowed_fd;
static bool g_verbose = false;
double now() {
struct timeval tv;
gettimeofday(&tv, NULL);
return (double)tv.tv_sec + (double)tv.tv_usec / 1000000;
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (double)ts.tv_sec + (double)ts.tv_nsec / 1000000000;
}
void die(const char* fmt, ...) {