mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-20 05:13:30 -07:00
Use QAtomicInt to guarantee cleanup() is only executed once
This commit is contained in:
parent
c6546db138
commit
7761a2604a
1 changed files with 3 additions and 4 deletions
|
@ -33,6 +33,7 @@
|
||||||
#include <QLibraryInfo>
|
#include <QLibraryInfo>
|
||||||
#include <QSysInfo>
|
#include <QSysInfo>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
#include <QAtomicInt>
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
#include "gui/guiiconprovider.h"
|
#include "gui/guiiconprovider.h"
|
||||||
|
@ -547,11 +548,9 @@ void Application::cleanup()
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
// cleanup() can be called multiple times during shutdown. We only need it once.
|
// cleanup() can be called multiple times during shutdown. We only need it once.
|
||||||
static bool alreadyDone = false;
|
static QAtomicInt alreadyDone;
|
||||||
|
if (!alreadyDone.testAndSetAcquire(0, 1))
|
||||||
if (alreadyDone)
|
|
||||||
return;
|
return;
|
||||||
alreadyDone = true;
|
|
||||||
#endif // Q_OS_WIN
|
#endif // Q_OS_WIN
|
||||||
|
|
||||||
// Hide the window and not leave it on screen as
|
// Hide the window and not leave it on screen as
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue