Subject: Re: [PATCH v2 4/5] reftable/system: add abstraction to retrieve time in milliseconds

From: Junio C Hamano <[email-masked]>
Date: Thu, 02 Apr 2026 11:27:03 -0700

Patrick Steinhardt <[email-masked]> writes:

> We directly call gettimeofday(3p), which may not be available on some
> platforms. Provide the infrastructure to let projects easily use their
> own implementations of this function.
>
> Signed-off-by: Patrick Steinhardt <[email-masked]>
> ---
>  reftable/stack.c  | 27 ++++-----------------------
>  reftable/system.c |  6 ++++++
>  reftable/system.h |  3 +++
>  3 files changed, 13 insertions(+), 23 deletions(-)
> ...
> +uint64_t reftable_time_ms(void)
> +{
> +	return getnanotime() / 1000000;
> +}
> diff --git a/reftable/system.h b/reftable/system.h
> index a7eb6acd4a..071bfa3d58 100644
> --- a/reftable/system.h
> +++ b/reftable/system.h
> @@ -111,4 +111,7 @@ int flock_release(struct reftable_flock *l);
>   */
>  int flock_commit(struct reftable_flock *l);
>  
> +/* Report the time in milliseconds. */
> +uint64_t reftable_time_ms(void);

This must be give the current time in milliseconds, measured from
some fixed point in time.  It is up to the implementation to choose
what absolute time as the epoch, since we only use this to compare
one timestamp returned by a call to this function with another.

The "we do not care what epoch you choose, but you have to be
consistent" requirement may want to be written down here, though.