diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-02-09 12:55:30 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-02-09 12:57:09 +0100 |
commit | beff11a3a1282e674a07fcb285a999cb4a264ba3 (patch) | |
tree | 35e614669a1a82de8ec180305b4fdc348fcbed4e | |
parent | f69941620ba8716679c141b973dfa24d5623b9ae (diff) | |
parent | 28ee7e8b8c658bab4a5e13a13254950e226453a7 (diff) |
Merge #5679: Get rid of DetectShutdownThread
28ee7e8 Get rid of DetectShutdownThread (Wladimir J. van der Laan)
-rw-r--r-- | src/bitcoind.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 8a1745b50d..a0a96c2dfa 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -33,7 +33,7 @@ static bool fDaemon; -void DetectShutdownThread(boost::thread_group* threadGroup) +void WaitForShutdown(boost::thread_group* threadGroup) { bool fShutdown = ShutdownRequested(); // Tell the main threads to shutdown. @@ -56,7 +56,6 @@ void DetectShutdownThread(boost::thread_group* threadGroup) bool AppInit(int argc, char* argv[]) { boost::thread_group threadGroup; - boost::thread* detectShutdownThread = NULL; bool fRet = false; @@ -144,7 +143,6 @@ bool AppInit(int argc, char* argv[]) #endif SoftSetBoolArg("-server", true); - detectShutdownThread = new boost::thread(boost::bind(&DetectShutdownThread, &threadGroup)); fRet = AppInit2(threadGroup); } catch (const std::exception& e) { @@ -155,20 +153,12 @@ bool AppInit(int argc, char* argv[]) if (!fRet) { - if (detectShutdownThread) - detectShutdownThread->interrupt(); - threadGroup.interrupt_all(); // threadGroup.join_all(); was left out intentionally here, because we didn't re-test all of // the startup-failure cases to make sure they don't result in a hang due to some // thread-blocking-waiting-for-another-thread-during-startup case - } - - if (detectShutdownThread) - { - detectShutdownThread->join(); - delete detectShutdownThread; - detectShutdownThread = NULL; + } else { + WaitForShutdown(&threadGroup); } Shutdown(); |