| 370 | } // namespace |
| 371 | |
| 372 | std::shared_ptr<CWallet> LoadWallet(WalletContext& context, const std::string& name, std::optional<bool> load_on_start, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error, std::vector<bilingual_str>& warnings) |
| 373 | { |
| 374 | auto result = WITH_LOCK(g_loading_wallet_mutex, return g_loading_wallet_set.insert(name)); |
| 375 | if (!result.second) { |
| 376 | error = Untranslated("Wallet already loading."); |
| 377 | status = DatabaseStatus::FAILED_LOAD; |
| 378 | return nullptr; |
| 379 | } |
| 380 | auto wallet = LoadWalletInternal(context, name, load_on_start, options, status, error, warnings); |
| 381 | WITH_LOCK(g_loading_wallet_mutex, g_loading_wallet_set.erase(result.first)); |
| 382 | return wallet; |
| 383 | } |
| 384 | |
| 385 | 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) |
| 386 | { |
no test coverage detected