aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatt Corallo <matt@bluematt.me>2012-06-28 15:52:45 +0200
committerMatt Corallo <matt@bluematt.me>2012-06-28 15:52:45 +0200
commit18c4beb05b494f30b16a17b834c23ec8774749b2 (patch)
treecc405a7fc106dd50b0034a4bde09504fc6379876 /src
parente75acc006e8bc5c44d1d6e6c3b027fe28d8c743b (diff)
downloadbitcoin-18c4beb05b494f30b16a17b834c23ec8774749b2.tar.xz
Revert "*Always* send a shutdown signal to enable custom shutdown actions"
This reverts commit 896899e0d66e25f6549a92749d237c8a87b12f08.
Diffstat (limited to 'src')
-rw-r--r--src/bitcoinrpc.cpp3
-rw-r--r--src/init.cpp11
2 files changed, 7 insertions, 7 deletions
diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp
index 8d78b8b00a..1874493391 100644
--- a/src/bitcoinrpc.cpp
+++ b/src/bitcoinrpc.cpp
@@ -2905,7 +2905,8 @@ void ThreadRPCServer2(void* parg)
}
vnThreadsRunning[THREAD_RPCLISTENER]--;
- io_service.run();
+ while (!fShutdown)
+ io_service.run_one();
vnThreadsRunning[THREAD_RPCLISTENER]++;
}
diff --git a/src/init.cpp b/src/init.cpp
index bb93342631..b25d52200f 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -9,7 +9,6 @@
#include "init.h"
#include "util.h"
#include "ui_interface.h"
-#include <boost/bind.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/convenience.hpp>
@@ -41,8 +40,13 @@ void ExitTimeout(void* parg)
void StartShutdown()
{
+#ifdef QT_GUI
// ensure we leave the Qt main loop for a clean GUI exit (Shutdown() is called in bitcoin.cpp afterwards)
uiInterface.QueueShutdown();
+#else
+ // Without UI, Shutdown() can simply be started in a new thread
+ CreateThread(Shutdown, NULL);
+#endif
}
void Shutdown(void* parg)
@@ -150,11 +154,6 @@ bool AppInit(int argc, char* argv[])
exit(ret);
}
- // Create the shutdown thread when receiving a shutdown signal
- boost::signals2::scoped_connection do_stop(
- uiInterface.QueueShutdown.connect(boost::bind(
- &CreateThread, &Shutdown, static_cast<void*>(0), false)));
-
fRet = AppInit2();
}
catch (std::exception& e) {