From adef166b22d5c95006df39fd8c57574624071189 Mon Sep 17 00:00:00 2001 From: nickfarrow Date: Tue, 5 Apr 2022 12:11:52 +1000 Subject: [PATCH] Create vector of thread handles to spawn threads Signed-off-by: nickfarrow --- src/blockchain/esplora/ureq.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/blockchain/esplora/ureq.rs b/src/blockchain/esplora/ureq.rs index 9bfa378f..55f1cf76 100644 --- a/src/blockchain/esplora/ureq.rs +++ b/src/blockchain/esplora/ureq.rs @@ -127,10 +127,11 @@ impl WalletSync for EsploraBlockchain { .take(self.concurrency as usize) .cloned(); - let handles = scripts.map(move |script| { + let mut handles = vec![]; + for script in scripts { let client = self.url_client.clone(); // make each request in its own thread. - std::thread::spawn(move || { + handles.push(std::thread::spawn(move || { let mut related_txs: Vec = client._scripthash_txs(&script, None)?; let n_confirmed = @@ -152,10 +153,11 @@ impl WalletSync for EsploraBlockchain { } } Result::<_, Error>::Ok(related_txs) - }) - }); + })); + } let txs_per_script: Vec> = handles + .into_iter() .map(|handle| handle.join().unwrap()) .collect::>()?; let mut satisfaction = vec![];