Skip to content

Commit e6e75d6

Browse files
committed
Have sync_wallets use a multi-threaded runtime
As part of the `OuputSweeper` we broadcast in the `Confirm` implementation, which would be called during transaction syncing. Since our broadcasting happens async but via the intermediate blocking `BroadcasterInterface` we have to transition from `sync_wallets` (blocking) -> LDK/BDK wallet sync (async) -> Confirm (blocking) -> BroadcasterInterface (blocking) -> bdk::Wallet::broadcast (async). However, as the `block_in_place`/`block_on` combo is only usable for multi-threaded runtimes, this new codepath now requires the use of a multi-threaded runtime in `sync_wallets` (note this is the case even though we use a stored, *different* multi-threaded runtime for the actual broadcasting. **sigh**).
1 parent 87217de commit e6e75d6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,7 @@ impl<K: KVStore + Sync + Send + 'static> Node<K> {
995995
];
996996

997997
tokio::task::block_in_place(move || {
998-
tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(
998+
tokio::runtime::Builder::new_multi_thread().enable_all().build().unwrap().block_on(
999999
async move {
10001000
let now = Instant::now();
10011001
match wallet.sync().await {

0 commit comments

Comments
 (0)