diff options
| author | tv <tv@krebsco.de> | 2026-10-25 23:00:56 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-25 23:00:56 +0100 |
| commit | c52d4b5ae43c202569c8801c312c2b56954ff8a0 (patch) | |
| tree | dac7221b966d9f4fdb8e1b91b1e20bce607de6fc /src/swarm/state_file.rs | |
| parent | 2f7265795b7f6ddf460bf93c5f880fb24bde9d3a (diff) | |
add clock module
The Clock module is the system clock that every unix timestamp new goes
through. It comes with an offset that only tests can set.
Diffstat (limited to 'src/swarm/state_file.rs')
| -rw-r--r-- | src/swarm/state_file.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/swarm/state_file.rs b/src/swarm/state_file.rs index 62a6dbe..8b883fc 100644 --- a/src/swarm/state_file.rs +++ b/src/swarm/state_file.rs @@ -129,7 +129,12 @@ pub(crate) async fn update(state: &AppState, now: bool) { let seeds = { let replica = state.doc.read().await; - seeds(&replica.doc, state.local_id(), state.electorate_window) + seeds( + &replica.doc, + state.local_id(), + state.electorate_window, + state.clock.now_millis(), + ) }; let remembered = Remembered { swarm_id, seeds }; @@ -172,8 +177,7 @@ pub(crate) async fn update(state: &AppState, now: bool) { /// Members to rejoin through: those alive within the electorate window, stable ones /// first, at most `MAX_SEEDS`, sorted. Changes only when members join, leave or change /// tier, so the file rarely does. -fn seeds(doc: &automerge::AutoCommit, me: &str, window: Duration) -> Vec<String> { - let now = crate::state::unix_millis(); +fn seeds(doc: &automerge::AutoCommit, me: &str, window: Duration, now: u64) -> Vec<String> { let (mut stable, transient): (Vec<String>, Vec<String>) = members::electorate(doc, now, window) .into_iter() .filter(|pk| pk != me) |
