diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2011-11-10 21:12:46 -0500 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2011-11-15 09:30:16 -0500 |
commit | d764d9161e548c7fbf835b70eb9d5c75caa28ff5 (patch) | |
tree | d94d3cf42bee7df401ac44a9c6c0181981a416b0 /src/init.cpp | |
parent | 9e9869d0fe9c5cb38273a557e28b1922356d0e11 (diff) |
Obsolete keypool and make sure database removes log files on shutdown.
Diffstat (limited to 'src/init.cpp')
-rw-r--r-- | src/init.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/init.cpp b/src/init.cpp index d6e153285e..c91c098e03 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -44,8 +44,8 @@ void Shutdown(void* parg) { static CCriticalSection cs_Shutdown; static bool fTaken; - bool fFirstThread; - CRITICAL_BLOCK(cs_Shutdown) + bool fFirstThread = false; + TRY_CRITICAL_BLOCK(cs_Shutdown) { fFirstThread = !fTaken; fTaken = true; @@ -55,9 +55,9 @@ void Shutdown(void* parg) { fShutdown = true; nTransactionsUpdated++; - DBFlush(false); + DBFlush(false, false); StopNode(); - DBFlush(true); + DBFlush(true, true); boost::filesystem::remove(GetPidFile()); UnregisterWallet(pwalletMain); delete pwalletMain; @@ -362,6 +362,12 @@ bool AppInit2(int argc, char* argv[]) strErrors += _("Error loading wallet.dat: Wallet corrupted \n"); else if (nLoadWalletRet == DB_TOO_NEW) strErrors += _("Error loading wallet.dat: Wallet requires newer version of Bitcoin \n"); + else if (nLoadWalletRet == DB_NEED_REWRITE) + { + strErrors += _("Wallet needed to be rewritten: restart Bitcoin to complete \n"); + wxMessageBox(strErrors, "Bitcoin", wxOK | wxICON_ERROR); + return false; + } else strErrors += _("Error loading wallet.dat \n"); } |