Port Clock functions to use Duration class (#19229)

This changes the arguments in clock functions to be `Duration` and
converts call sites and constants into `Duration`. There are still some
more functions around that should be converted (e.g.
`timeout_deferred`), but we leave that to another PR.

We also changes `.as_secs()` to return a float, as the rounding broke
things subtly. The only reason to keep it (its the same as
`timedelta.total_seconds()`) is for symmetry with `as_millis()`.

Follows on from https://github.com/element-hq/synapse/pull/19223
This commit is contained in:
Erik Johnston
2025-12-01 13:55:06 +00:00
committed by GitHub
parent d143276bda
commit 1bddd25a85
95 changed files with 511 additions and 260 deletions

View File

@@ -37,6 +37,7 @@ from synapse.logging import RemoteHandler
from synapse.synapse_rust import reset_logging_config
from synapse.types import ISynapseReactor
from synapse.util.clock import Clock
from synapse.util.duration import Duration
class LineCounter(LineOnlyReceiver):
@@ -141,7 +142,7 @@ async def main(reactor: ISynapseReactor, loops: int) -> float:
if len(handler._buffer) == handler.maximum_buffer:
while len(handler._buffer) > handler.maximum_buffer / 2:
await clock.sleep(0.01)
await clock.sleep(Duration(milliseconds=10))
await logger_factory.on_done