mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-11 15:27:57 +00:00
*Always* send a shutdown signal to enable custom shutdown actions
NOTE: This is required to be sure that we can properly shut down the RPC thread. Signed-off-by: Giel van Schijndel <me@mortis.eu>
This commit is contained in:
parent
07368a9e3c
commit
896899e0d6
@ -2884,8 +2884,7 @@ void ThreadRPCServer2(void* parg)
|
||||
}
|
||||
|
||||
vnThreadsRunning[THREAD_RPCLISTENER]--;
|
||||
while (!fShutdown)
|
||||
io_service.run_one();
|
||||
io_service.run();
|
||||
vnThreadsRunning[THREAD_RPCLISTENER]++;
|
||||
|
||||
// Terminate all outstanding accept-requests
|
||||
|
11
src/init.cpp
11
src/init.cpp
@ -9,6 +9,7 @@
|
||||
#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>
|
||||
@ -40,13 +41,8 @@ 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)
|
||||
@ -154,6 +150,11 @@ 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) {
|
||||
|
Loading…
Reference in New Issue
Block a user