diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-09-17 21:22:40 +0200 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-09-18 13:05:30 +0200 |
commit | b1de80b4169d5f60f0f1f7fd20018ba6521c293e (patch) | |
tree | ff935ac76f2d69131081a22ef9380ae32e624e5f | |
parent | 747913f2549c1b228395192a73231b96c93f4f40 (diff) | |
download | libquotient-b1de80b4169d5f60f0f1f7fd20018ba6521c293e.tar.gz libquotient-b1de80b4169d5f60f0f1f7fd20018ba6521c293e.zip |
Cleanup NAM more carefully
This tries to fix getting stuck at exit since NAM has been switched
from QThreadStorage to thread_local
-rw-r--r-- | lib/networkaccessmanager.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/networkaccessmanager.cpp b/lib/networkaccessmanager.cpp index 78be89bd..44a306d1 100644 --- a/lib/networkaccessmanager.cpp +++ b/lib/networkaccessmanager.cpp @@ -9,6 +9,7 @@ #include "mxcreply.h" #include <QtCore/QCoreApplication> +#include <QtCore/QThread> #include <QtCore/QSettings> #include <QtNetwork/QNetworkReply> @@ -68,8 +69,13 @@ void NetworkAccessManager::clearIgnoredSslErrors() NetworkAccessManager* NetworkAccessManager::instance() { - thread_local NetworkAccessManager nam; - return &nam; + thread_local auto* nam = [] { + auto* namInit = new NetworkAccessManager(); + connect(QThread::currentThread(), &QThread::finished, namInit, + &QObject::deleteLater); + return namInit; + }(); + return nam; } QNetworkReply* NetworkAccessManager::createRequest( |