aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2013-05-04 07:43:15 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2013-05-04 07:43:15 -0700
commitf309cb76c2c932317307d51961ca25cf051eb255 (patch)
tree10a2cdd855b19475f138785f80e922939f91645a
parentc9b1baaa293faeaa23d3ed33b6cc10e1ba0c3062 (diff)
parentd605bc4cd13716fde9c34d79a01f4ee128f8814f (diff)
Merge pull request #2606 from gavinandresen/threadfix
Exit cleanly if AppInit2 returns false
-rw-r--r--src/init.cpp6
-rw-r--r--src/qt/bitcoin.cpp3
2 files changed, 6 insertions, 3 deletions
diff --git a/src/init.cpp b/src/init.cpp
index 02997cd357..472af5331b 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1041,6 +1041,9 @@ bool AppInit2(boost::thread_group& threadGroup)
if (!CheckDiskSpace())
return false;
+ if (!strErrors.str().empty())
+ return InitError(strErrors.str());
+
RandAddSeedPerfmon();
//// debug print
@@ -1062,9 +1065,6 @@ bool AppInit2(boost::thread_group& threadGroup)
uiInterface.InitMessage(_("Done loading"));
- if (!strErrors.str().empty())
- return InitError(strErrors.str());
-
// Add wallet transactions that aren't already in a block to mapTransactions
pwalletMain->ReacceptWalletTransactions();
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 1083f9bfe1..2d88700614 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -282,6 +282,9 @@ int main(int argc, char *argv[])
}
else
{
+ threadGroup.interrupt_all();
+ threadGroup.join_all();
+ Shutdown();
return 1;
}
} catch (std::exception& e) {