diff --git a/Cargo.toml b/Cargo.toml index 2ec98a4761..a25aff85d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -149,7 +149,7 @@ serde_cbor = "0.11.2" serde_json = "1.0.114" serde-pickle = "1.1.1" serde_yaml = "0.9.19" -stabby = "4.0.5" +stabby = { git="https://github.com/ZettaScaleLabs/stabby.git", branch="fix_stabby_abi_build" } sha3 = "0.10.6" shared_memory = "0.12.4" shellexpand = "3.0.0" diff --git a/zenoh/src/net/routing/dispatcher/face.rs b/zenoh/src/net/routing/dispatcher/face.rs index c8cf5d8770..6eb9ee5b90 100644 --- a/zenoh/src/net/routing/dispatcher/face.rs +++ b/zenoh/src/net/routing/dispatcher/face.rs @@ -335,6 +335,14 @@ impl Primitives for Face { .local_interests .entry(id) .and_modify(|interest| interest.finalized = true); + + // recompute routes + // TODO: disable routes and recompute them in parallel to avoid holding + // tables write lock for a long time. + let mut wtables = zwrite!(self.tables.tables); + let mut root_res = wtables.root_res.clone(); + update_data_routes_from(&mut wtables, &mut root_res); + update_query_routes_from(&mut wtables, &mut root_res); } } }