fReopenDebugLog and fRequestShutdown should be type sig_atomic_t

This allows access as an atomic variable in the presence
of async interrupts.

See issue #7433 for more details
fixes: #7433
This commit is contained in:
Chirag Davé
2016-05-04 21:40:28 -07:00
committed by Simon
parent 90c116ac54
commit 7a4e0e0932
3 changed files with 14 additions and 5 deletions

View File

@@ -111,7 +111,7 @@ CClientUIInterface uiInterface; // Declared but not defined in ui_interface.h
// shutdown thing.
//
volatile bool fRequestShutdown = false;
volatile sig_atomic_t fRequestShutdown = false;
void StartShutdown()
{

View File

@@ -107,9 +107,10 @@ bool fPrintToDebugLog = true;
bool fDaemon = false;
bool fServer = false;
string strMiscWarning;
bool fLogTimestamps = false;
bool fLogIPs = false;
volatile bool fReopenDebugLog = false;
bool fLogTimestamps = DEFAULT_LOGTIMESTAMPS;
bool fLogTimeMicros = DEFAULT_LOGTIMEMICROS;
bool fLogIPs = DEFAULT_LOGIPS;
volatile sig_atomic_t fReopenDebugLog = false;
CTranslationInterface translationInterface;
/** Init OpenSSL library multithreading support */

View File

@@ -28,6 +28,14 @@
#include <boost/signals2/signal.hpp>
#include <boost/thread/exceptions.hpp>
#ifndef WIN32
#include <signal.h>
#endif
static const bool DEFAULT_LOGTIMEMICROS = false;
static const bool DEFAULT_LOGIPS = false;
static const bool DEFAULT_LOGTIMESTAMPS = true;
/** Signals for translation. */
class CTranslationInterface
{
@@ -45,7 +53,7 @@ extern bool fServer;
extern std::string strMiscWarning;
extern bool fLogTimestamps;
extern bool fLogIPs;
extern volatile bool fReopenDebugLog;
extern volatile sig_atomic_t fReopenDebugLog;
extern CTranslationInterface translationInterface;
/**