Skip to content

Commit

Permalink
Drop mutex before calling finder.finish() to allow parallel executions (
Browse files Browse the repository at this point in the history
#839)

* Drop mutex before calling finder.finish() to allow parallel executions

* refactor
  • Loading branch information
Thoralf-M authored Dec 16, 2021
1 parent ae9b806 commit 6d390e5
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/account_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -419,16 +419,18 @@ impl AccountManager {
if finder.initial_address_index == 0 {
self.cached_migration_data.lock().await.remove(&finder.seed_hash);
}
let metadata = finder
.finish(
self.cached_migration_data
.lock()
.await
.get(&finder.seed_hash)
.map(|c| c.inputs.clone())
.unwrap_or_default(),
)
.await?;
// lock mutex in the closure, so it gets dropped before calling finder.finish(previous_inputs).await to allow
// parallel executions
let previous_inputs = {
self.cached_migration_data
.lock()
.await
.get(&finder.seed_hash)
.map(|c| c.inputs.clone())
.unwrap_or_default()
};

let metadata = finder.finish(previous_inputs).await?;
self.cached_migration_data
.lock()
.await
Expand Down

0 comments on commit 6d390e5

Please sign in to comment.