Skip to content

Commit 8ec3cad

Browse files
Wait for block broadcast (#3006)
Co-authored-by: Kai <7630809+Kailai-Wang@users.noreply.github.com>
1 parent dcbf2b2 commit 8ec3cad

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

tee-worker/service/src/worker.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use crate::{config::Config, error::Error, initialized_service::TrackInitialization};
2424
use async_trait::async_trait;
2525
use codec::{Decode, Encode};
26+
use futures::future::join_all;
2627
use itc_rpc_client::direct_client::{DirectApi, DirectClient as DirectWorkerApi};
2728
use itp_enclave_api::enclave_base::EnclaveBase;
2829
use itp_node_api::{api_client::PalletTeebagApi, node_api_factory::CreateNodeApi};
@@ -119,19 +120,22 @@ where
119120

120121
let nr_peers = peers.len();
121122

122-
for url in peers {
123+
let futures = peers.iter().map(|url| {
123124
let encoded_blocks_cloned = encoded_blocks.clone();
124-
tokio::spawn(async move {
125-
let client = DirectWorkerApi::new(url.trusted.to_string());
126-
125+
let url = url.trusted.clone();
126+
tokio::task::spawn_blocking(move || {
127+
let client = DirectWorkerApi::new(url.to_string());
127128
if let Err(e) = client.import_sidechain_blocks(encoded_blocks_cloned) {
128129
error!(
129130
"Broadcast block request ({}) to {} failed: {:?}",
130-
RPC_METHOD_NAME_IMPORT_BLOCKS, url.trusted, e
131+
RPC_METHOD_NAME_IMPORT_BLOCKS, url, e
131132
);
132133
}
133-
});
134-
}
134+
})
135+
});
136+
137+
join_all(futures).await;
138+
135139
info!("broadcast {} block(s) to {} peers", nr_blocks, nr_peers);
136140
Ok(())
137141
}

0 commit comments

Comments
 (0)