Merge pull request #457 from muggenhor/async-ipv6-rpc

IPv6 RPC using asynchronously accepted connections
This commit is contained in:
Pieter Wuille
2012-06-27 07:48:38 -07:00
5 changed files with 206 additions and 75 deletions

View File

@@ -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) {