Skip to content

Commit 4f3ba85

Browse files
hebastoMarcoFalke
authored andcommitted
wallet, refactor: Add wallet::NotifyWalletLoaded() function
This change is a prerequisite for the following bugfix. Github-Pull: bitcoin/bitcoin#24711 Rebased-From: aeee419
1 parent c243e08 commit 4f3ba85

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/wallet/wallet.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,14 @@ std::unique_ptr<interfaces::Handler> HandleLoadWallet(WalletContext& context, Lo
167167
return interfaces::MakeHandler([&context, it] { LOCK(context.wallets_mutex); context.wallet_load_fns.erase(it); });
168168
}
169169

170+
void NotifyWalletLoaded(WalletContext& context, const std::shared_ptr<CWallet>& wallet)
171+
{
172+
LOCK(context.wallets_mutex);
173+
for (auto& load_wallet : context.wallet_load_fns) {
174+
load_wallet(interfaces::MakeWallet(context, wallet));
175+
}
176+
}
177+
170178
static Mutex g_loading_wallet_mutex;
171179
static Mutex g_wallet_release_mutex;
172180
static std::condition_variable g_wallet_release_cv;
@@ -2898,12 +2906,7 @@ std::shared_ptr<CWallet> CWallet::Create(WalletContext& context, const std::stri
28982906
return nullptr;
28992907
}
29002908

2901-
{
2902-
LOCK(context.wallets_mutex);
2903-
for (auto& load_wallet : context.wallet_load_fns) {
2904-
load_wallet(interfaces::MakeWallet(context, walletInstance));
2905-
}
2906-
}
2909+
NotifyWalletLoaded(context, walletInstance);
29072910

29082911
{
29092912
LOCK(walletInstance->cs_wallet);

src/wallet/wallet.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ std::shared_ptr<CWallet> LoadWallet(WalletContext& context, const std::string& n
6868
std::shared_ptr<CWallet> CreateWallet(WalletContext& context, const std::string& name, std::optional<bool> load_on_start, DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings);
6969
std::shared_ptr<CWallet> RestoreWallet(WalletContext& context, const fs::path& backup_file, const std::string& wallet_name, std::optional<bool> load_on_start, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings);
7070
std::unique_ptr<interfaces::Handler> HandleLoadWallet(WalletContext& context, LoadWalletFn load_wallet);
71+
void NotifyWalletLoaded(WalletContext& context, const std::shared_ptr<CWallet>& wallet);
7172
std::unique_ptr<WalletDatabase> MakeWalletDatabase(const std::string& name, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error);
7273

7374
//! -paytxfee default

0 commit comments

Comments
 (0)