replace gettimeofday with clock_gettime

POSIX.1-2008 has marked gettimeofday(2) as obsolete, recommending the
use of clock_gettime(2) instead.

CLOCK_MONOTONIC has been used instead of CLOCK_REALTIME because it is
unaffected by manual changes in the system clock. This makes it better
for our purposes, namely, measuring the difference between two points in
time.

tv_sec has been casted to long in most places since POSIX does not
define the actual type of time_t.
This commit is contained in:
Pranjal Kole 2022-01-15 14:56:13 +05:30
parent 0d649408a0
commit 0da19a81bc
12 changed files with 123 additions and 103 deletions

18
grid.c
View file

@ -557,8 +557,8 @@ grid_resize_and_reflow(
struct coord *const _tracking_points[static tracking_points_count])
{
#if defined(TIME_REFLOW) && TIME_REFLOW
struct timeval start;
gettimeofday(&start, NULL);
struct timespec start;
clock_gettime(CLOCK_MONOTONIC, &start);
#endif
struct row *const *old_grid = grid->rows;
@ -966,15 +966,15 @@ grid_resize_and_reflow(
tll_free(untranslated_sixels);
#if defined(TIME_REFLOW) && TIME_REFLOW
struct timeval stop;
gettimeofday(&stop, NULL);
struct timespec stop;
clock_gettime(CLOCK_MONOTONIC, &stop);
struct timeval diff;
timersub(&stop, &start, &diff);
LOG_INFO("reflowed %d -> %d rows in %llds %lldµs",
struct timespec diff;
timespec_sub(&stop, &start, &diff);
LOG_INFO("reflowed %d -> %d rows in %lds %ldns",
old_rows, new_rows,
(long long)diff.tv_sec,
(long long)diff.tv_usec);
(long)diff.tv_sec,
diff.tv_nsec);
#endif
}