Hi,

I was looking using enable_timeout_every() in another place with Lukas
just now, and noticed the fin_time argument.  It seems odd for an
interval firing interface to get an absolute timestamp as an
argument. The only in-tree user of enable_timeout_every() computes
fin_time explicitly using the interval time:

        startup_progress_phase_start_time = GetCurrentTimestamp();
        fin_time = 
TimestampTzPlusMilliseconds(startup_progress_phase_start_time,
                                                                                
   log_startup_progress_interval);
        enable_timeout_every(STARTUP_PROGRESS_TIMEOUT, fin_time,
                                                 log_startup_progress_interval);

In 
https://postgr.es/m/CA%2BTgmoYqSF5sCNrgTom9r3Nh%3Dat4WmYFD%3DgsV-omStZ60S0ZUQ%40mail.gmail.com
Robert said:
> Apparently not, but here's a v2 anyway. In this version I made
> enable_timeout_every() a three-argument function, so that the caller
> can specify both the first time at which the timeout routine should be
> called and the interval between them, instead of only the latter. That
> seems to be more convenient for this use case, and is more powerful in
> general.

What is the use case for an absolute start time plus a relative
interval?

ISTM that this will just lead to every caller ending up with a
calculation like the startup.c piece quoted above.

Greetings,

Andres Freund


Reply via email to