aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2016-10-20 09:22:13 +0200
committerJonas Schnelli <dev@jonasschnelli.ch>2016-10-20 09:22:13 +0200
commitcab1da745b2a36407bb9493343cc74213854419d (patch)
tree5f250b614ebfc21e8ede93c8eb80aed658945424 /src/wallet
parentc5875773561c249a079714f3b091a2577707eadf (diff)
[Wallet] Refactor wallet/init interaction (Reaccept wtx, flush thread)
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet.cpp10
-rw-r--r--src/wallet/wallet.h7
2 files changed, 17 insertions, 0 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index c7f98b238e..66f92d887b 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -3472,6 +3472,16 @@ bool CWallet::InitLoadWallet()
return true;
}
+void CWallet::postInitProcess(boost::thread_group& threadGroup)
+{
+ // Add wallet transactions that aren't already in a block to mempool
+ // Do this here as mempool requires genesis block to be loaded
+ ReacceptWalletTransactions();
+
+ // Run a thread to flush wallet periodically
+ threadGroup.create_thread(boost::bind(&ThreadFlushWalletDB, boost::ref(this->strWalletFile)));
+}
+
bool CWallet::ParameterInteraction()
{
if (GetBoolArg("-disablewallet", DEFAULT_DISABLE_WALLET))
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index 3b37f7cb1f..5e50eaedc3 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -27,6 +27,7 @@
#include <vector>
#include <boost/shared_ptr.hpp>
+#include <boost/thread.hpp>
extern CWallet* pwalletMain;
@@ -912,6 +913,12 @@ public:
/* Initializes the wallet, returns a new CWallet instance or a null pointer in case of an error */
static bool InitLoadWallet();
+ /**
+ * Wallet post-init setup
+ * Gives the wallet a chance to register repetitive tasks and complete post-init tasks
+ */
+ void postInitProcess(boost::thread_group& threadGroup);
+
/* Wallets parameter interaction */
static bool ParameterInteraction();