summaryrefslogtreecommitdiffstats
path: root/src/swarm/sync.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-25 22:12:27 +0100
committertv <tv@krebsco.de>2026-10-25 22:12:27 +0100
commitaa310544e04a70bab2af42666d864cd3840f9bce (patch)
tree37d91b8a69913da4cb0a74b177976c6cebcfdecf /src/swarm/sync.rs
parent8d0590d807ec012ed88f89ca7ef56276ccdcc113 (diff)
recompute neighbours whenever topology changes
Diffstat (limited to 'src/swarm/sync.rs')
-rw-r--r--src/swarm/sync.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/swarm/sync.rs b/src/swarm/sync.rs
index 93af6f7..d4503bb 100644
--- a/src/swarm/sync.rs
+++ b/src/swarm/sync.rs
@@ -608,6 +608,13 @@ pub(crate) async fn run_change_publisher(state: AppState) {
warn!(path = ?path, "Concurrent writes produced a conflict");
}
+ if paths
+ .iter()
+ .any(|path| crate::swarm::topology::affects_neighbours(path))
+ {
+ state.topology_changed.notify_one();
+ }
+
// Fails only when nobody is subscribed.
let _ = state.change_events.send(Arc::new(ChangeSet { paths }));
}