Use QAtomicInt to guarantee cleanup() is only executed once

This commit is contained in:
Chocobo1 2016-03-10 02:00:26 +08:00 committed by sledgehammer999
parent c6546db138
commit 7761a2604a

View file

@ -33,6 +33,7 @@
#include <QLibraryInfo>
#include <QSysInfo>
#include <QProcess>
#include <QAtomicInt>
#ifndef DISABLE_GUI
#include "gui/guiiconprovider.h"
@ -547,11 +548,9 @@ void Application::cleanup()
#ifndef DISABLE_GUI
#ifdef Q_OS_WIN
// cleanup() can be called multiple times during shutdown. We only need it once.
static bool alreadyDone = false;
if (alreadyDone)
static QAtomicInt alreadyDone;
if (!alreadyDone.testAndSetAcquire(0, 1))
return;
alreadyDone = true;
#endif // Q_OS_WIN
// Hide the window and not leave it on screen as