From 6d753cb7fb8509093d2a96c1a256f822acf603a4 Mon Sep 17 00:00:00 2001 From: Antoine van Gelder Date: Fri, 18 Feb 2022 17:22:02 +0200 Subject: [PATCH] fix(rust): fix `BleTransport` initialization race condition --- .../rust/ockam/ockam_transport_ble/src/router/mod.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/implementations/rust/ockam/ockam_transport_ble/src/router/mod.rs b/implementations/rust/ockam/ockam_transport_ble/src/router/mod.rs index 2c4acd5d133..520670161ab 100644 --- a/implementations/rust/ockam/ockam_transport_ble/src/router/mod.rs +++ b/implementations/rust/ockam/ockam_transport_ble/src/router/mod.rs @@ -88,8 +88,6 @@ impl Worker for BleRouter { type Message = RouterMessage; async fn initialize(&mut self, ctx: &mut Context) -> Result<()> { - debug!("Registering Ble router for type = {}", crate::BLE); - ctx.register(crate::BLE, ctx.address()).await?; ctx.set_cluster(crate::CLUSTER_NAME).await?; Ok(()) } @@ -134,9 +132,12 @@ impl BleRouter { let handle = router.create_self_handle(ctx).await?; - trace!("BleRouter start_worker({:?})", addr.clone()); + trace!("Start Ble router for address = {:?}", addr.clone()); ctx.start_worker(addr.clone(), router).await?; + trace!("Registering Ble router for type = {}", crate::BLE); + ctx.register(crate::BLE, ctx.address()).await?; + Ok(handle) } }