diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2020-06-06 09:30:34 +0200 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2020-06-06 10:52:43 +0200 |
commit | 1def3a31a626245253b4a98c72e27cd58e05a31d (patch) | |
tree | c54a37da3197b9a5d808c9f76a7ead43d8c69af2 /src/network | |
parent | 1f3fc6e97bf7a46c531aaa1ffa83010955ab6404 (diff) |
Detect thread affinity violations
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/jsonwebtask.cpp | 10 | ||||
-rw-r--r-- | src/network/webtask.cpp | 14 |
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; |