Gavin Andresen: clean shutdown on SIGTERM
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@149 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
parent
8c9479c6bb
commit
14002c8eba
5 changed files with 18 additions and 1 deletions
|
@ -99,6 +99,7 @@
|
|||
#include <net/if.h>
|
||||
#include <ifaddrs.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#endif
|
||||
#ifdef BSD
|
||||
#include <netinet/in.h>
|
||||
|
|
14
init.cpp
14
init.cpp
|
@ -10,7 +10,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Shutdown
|
||||
|
@ -57,6 +56,11 @@ void Shutdown(void* parg)
|
|||
}
|
||||
}
|
||||
|
||||
void HandleSIGTERM(int)
|
||||
{
|
||||
fRequestShutdown = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -130,6 +134,14 @@ bool AppInit2(int argc, char* argv[])
|
|||
#ifndef __WXMSW__
|
||||
umask(077);
|
||||
#endif
|
||||
#ifndef __WXMSW__
|
||||
// Clean shutdown on SIGTERM
|
||||
struct sigaction sa;
|
||||
sa.sa_handler = HandleSIGTERM;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sigaction(SIGTERM, &sa, NULL);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Parameters
|
||||
|
|
2
net.cpp
2
net.cpp
|
@ -1163,6 +1163,8 @@ void ThreadMessageHandler2(void* parg)
|
|||
// Wait and allow messages to bunch up
|
||||
vnThreadsRunning[2]--;
|
||||
Sleep(100);
|
||||
if (fRequestShutdown)
|
||||
Shutdown(NULL);
|
||||
vnThreadsRunning[2]++;
|
||||
if (fShutdown)
|
||||
return;
|
||||
|
|
1
util.cpp
1
util.cpp
|
@ -11,6 +11,7 @@ bool fDebug = false;
|
|||
bool fPrintToConsole = false;
|
||||
bool fPrintToDebugger = false;
|
||||
char pszSetDataDir[MAX_PATH] = "";
|
||||
bool fRequestShutdown = false;
|
||||
bool fShutdown = false;
|
||||
bool fDaemon = false;
|
||||
bool fCommandLine = false;
|
||||
|
|
1
util.h
1
util.h
|
@ -140,6 +140,7 @@ extern bool fDebug;
|
|||
extern bool fPrintToConsole;
|
||||
extern bool fPrintToDebugger;
|
||||
extern char pszSetDataDir[MAX_PATH];
|
||||
extern bool fRequestShutdown;
|
||||
extern bool fShutdown;
|
||||
extern bool fDaemon;
|
||||
extern bool fCommandLine;
|
||||
|
|
Loading…
Add table
Reference in a new issue