aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/init.cpp
diff options
context:
space:
mode:
authorJoão Barbosa <joao.paulo.barbosa@gmail.com>2018-12-12 23:21:19 +0000
committerJoão Barbosa <joao.paulo.barbosa@gmail.com>2019-01-15 00:01:00 +0000
commitc37851de5752f107c16e19317f28038b6b7ca2dc (patch)
tree9630a18acef413ea7fed27268037db1a84ead1f5 /src/wallet/init.cpp
parente7b88ecbc920321290941bc68e4a71634889c3cb (diff)
downloadbitcoin-c37851de5752f107c16e19317f28038b6b7ca2dc.tar.xz
rpc: Make unloadwallet wait for complete wallet unload
Diffstat (limited to 'src/wallet/init.cpp')
-rw-r--r--src/wallet/init.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp
index 14d811c6cd..87cd264c3d 100644
--- a/src/wallet/init.cpp
+++ b/src/wallet/init.cpp
@@ -242,7 +242,11 @@ void StopWallets()
void UnloadWallets()
{
- for (const std::shared_ptr<CWallet>& pwallet : GetWallets()) {
- RemoveWallet(pwallet);
+ auto wallets = GetWallets();
+ while (!wallets.empty()) {
+ auto wallet = wallets.back();
+ wallets.pop_back();
+ RemoveWallet(wallet);
+ UnloadWallet(std::move(wallet));
}
}