summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2020-06-06 09:30:34 +0200
committerUwe Klotz <uklotz@mixxx.org>2020-06-06 10:52:43 +0200
commit1def3a31a626245253b4a98c72e27cd58e05a31d (patch)
treec54a37da3197b9a5d808c9f76a7ead43d8c69af2 /src/network
parent1f3fc6e97bf7a46c531aaa1ffa83010955ab6404 (diff)
Detect thread affinity violations
Diffstat (limited to 'src/network')
-rw-r--r--src/network/jsonwebtask.cpp10
-rw-r--r--src/network/webtask.cpp14
2 files changed, 12 insertions, 12 deletions
diff --git a/src/network/jsonwebtask.cpp b/src/network/jsonwebtask.cpp
index dec24f602c..7a843145a3 100644
--- a/src/network/jsonwebtask.cpp
+++ b/src/network/jsonwebtask.cpp
@@ -6,7 +6,6 @@
#include <QMetaMethod>
#include <QMimeDatabase>
#include <QNetworkRequest>
-#include <QThread>
#include <QTimerEvent>
#include <mutex> // std::once_flag
@@ -16,6 +15,7 @@
#endif
#include "util/counter.h"
#include "util/logger.h"
+#include "util/thread_affinity.h"
namespace mixxx {
@@ -240,7 +240,7 @@ bool JsonWebTask::doStart(
QNetworkAccessManager* networkAccessManager,
int parentTimeoutMillis) {
Q_UNUSED(parentTimeoutMillis);
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
DEBUG_ASSERT(networkAccessManager);
VERIFY_OR_DEBUG_ASSERT(!m_pendingNetworkReply) {
kLogger.warning()
@@ -287,7 +287,7 @@ bool JsonWebTask::doStart(
}
QUrl JsonWebTask::doAbort() {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
QUrl requestUrl;
if (m_pendingNetworkReply) {
requestUrl = abortPendingNetworkReply(m_pendingNetworkReply);
@@ -301,7 +301,7 @@ QUrl JsonWebTask::doAbort() {
}
QUrl JsonWebTask::doTimeOut() {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
QUrl requestUrl;
if (m_pendingNetworkReply) {
requestUrl = timeOutPendingNetworkReply(m_pendingNetworkReply);
@@ -313,7 +313,7 @@ QUrl JsonWebTask::doTimeOut() {
}
void JsonWebTask::slotNetworkReplyFinished() {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
const QPair<QNetworkReply*, HttpStatusCode> networkReplyWithStatusCode =
receiveNetworkReply();
auto* const networkReply = networkReplyWithStatusCode.first;
diff --git a/src/network/webtask.cpp b/src/network/webtask.cpp
index 1b0950b642..49cc3fc819 100644
--- a/src/network/webtask.cpp
+++ b/src/network/webtask.cpp
@@ -1,12 +1,12 @@
#include "network/webtask.h"
-#include <QThread>
#include <QTimerEvent>
#include <mutex> // std::once_flag
#include "util/assert.h"
#include "util/counter.h"
#include "util/logger.h"
+#include "util/thread_affinity.h"
namespace mixxx {
@@ -166,7 +166,7 @@ void WebTask::invokeAbort() {
}
void WebTask::slotStart(int timeoutMillis) {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
DEBUG_ASSERT(m_status != Status::Pending);
VERIFY_OR_DEBUG_ASSERT(m_networkAccessManager) {
onNetworkError(
@@ -207,7 +207,7 @@ void WebTask::slotStart(int timeoutMillis) {
QUrl WebTask::abortPendingNetworkReply(
QNetworkReply* pendingNetworkReply) {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
DEBUG_ASSERT(pendingNetworkReply);
if (pendingNetworkReply->isRunning()) {
pendingNetworkReply->abort();
@@ -219,7 +219,7 @@ QUrl WebTask::abortPendingNetworkReply(
QUrl WebTask::timeOutPendingNetworkReply(
QNetworkReply* pendingNetworkReply) {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
DEBUG_ASSERT(pendingNetworkReply);
if (pendingNetworkReply->isRunning()) {
//pendingNetworkReply->abort();
@@ -230,7 +230,7 @@ QUrl WebTask::timeOutPendingNetworkReply(
}
QUrl WebTask::abort() {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
if (m_status != Status::Pending) {
DEBUG_ASSERT(m_timeoutTimerId == kInvalidTimerId);
return QUrl();
@@ -252,7 +252,7 @@ void WebTask::slotAbort() {
}
void WebTask::timerEvent(QTimerEvent* event) {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
const auto timerId = event->timerId();
DEBUG_ASSERT(timerId != kInvalidTimerId);
if (timerId != m_timeoutTimerId) {
@@ -270,7 +270,7 @@ void WebTask::timerEvent(QTimerEvent* event) {
}
QPair<QNetworkReply*, HttpStatusCode> WebTask::receiveNetworkReply() {
- DEBUG_ASSERT(thread() == QThread::currentThread());
+ DEBUG_ASSERT_QOBJECT_THREAD_AFFINITY(this);
DEBUG_ASSERT(m_status != Status::Idle);
auto* const networkReply = qobject_cast<QNetworkReply*>(sender());
HttpStatusCode statusCode = kHttpStatusCodeInvalid;