mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-15 01:00:23 +00:00
Avoid crashes at shutdown due to printf() in global destructors.
This commit is contained in:
parent
c0b130b79b
commit
cac6b389d1
10
src/util.cpp
10
src/util.cpp
@ -220,8 +220,14 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
|
|||||||
if (fileout)
|
if (fileout)
|
||||||
{
|
{
|
||||||
static bool fStartedNewLine = true;
|
static bool fStartedNewLine = true;
|
||||||
static boost::mutex mutexDebugLog;
|
|
||||||
boost::mutex::scoped_lock scoped_lock(mutexDebugLog);
|
// This routine may be called by global destructors during shutdown.
|
||||||
|
// Since the order of destruction of static/global objects is undefined,
|
||||||
|
// allocate mutexDebugLog on the heap the first time this routine
|
||||||
|
// is called to avoid crashes during shutdown.
|
||||||
|
static boost::mutex* mutexDebugLog = NULL;
|
||||||
|
if (mutexDebugLog == NULL) mutexDebugLog = new boost::mutex();
|
||||||
|
boost::mutex::scoped_lock scoped_lock(*mutexDebugLog);
|
||||||
|
|
||||||
// reopen the log file, if requested
|
// reopen the log file, if requested
|
||||||
if (fReopenDebugLog) {
|
if (fReopenDebugLog) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user