On Thu, 2026-10-01 at 13:55 +0200, Arturo Bernal wrote:
> Hi Oleg,
> 
> The main reason for #660 was not nanosecond precision. The intention
> was to
> use a monotonic clock for timeout and elapsed-time accounting, so
> those
> calculations would not be affected by wall-clock adjustments.
> 
> Looking at it now, I think the mistake was changing the timestamps
> exposed
> by IOSession to the monotonic time domain without also considering
> all
> their consumers. The reactor and H2 timeout code moved to
> System.nanoTime(),
> while connection pooling still uses absolute millisecond timestamps.
> 
> So if IOSession#getLastEventTime() is meant to remain monotonic, its
> consumers would need to use the same time domain. Alternatively, we
> may
> want to reconsider whether relative reactor timestamps should be
> exposed
> through IOSession at all.
> 
> In other words, monotonicity was the goal of #660, not nanosecond
> precision, but I agree that the current split between relative and
> absolute
> timestamps is inconsistent.
> 
> Cheers,
> 
> Arturo
> 

What do we do now? We can leave everything as is, document the decision
and live with it. But I am sure the lack of conceptual inconsistency
will be hurting us going forward. 

Alternatively we can revert or rework your changes to restore the
previous behavior. What would be your call?

Oleg

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to