diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2021-09-22 11:43:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-22 11:43:04 +0200 |
commit | f9bb84f7cae99e42b063bde0f6852689c4e0d4ec (patch) | |
tree | 85453a6841ebecb9b439787bf907a4ad38bb5cad | |
parent | fb8f85534e2cc85f2ee44f5b0ce899a9a8afc70c (diff) | |
parent | 4a6099f4502f60e77d61b1b92e9ded29dc37606f (diff) |
Merge pull request #4320 from daschuer/atomicLoadAquire
Retire atomicLoadAcquire()
-rw-r--r-- | src/controllers/bulk/bulkcontroller.cpp | 2 | ||||
-rw-r--r-- | src/engine/cachingreader/cachingreader.cpp | 2 | ||||
-rw-r--r-- | src/engine/cachingreader/cachingreaderworker.cpp | 2 | ||||
-rw-r--r-- | src/library/export/trackexportworker.cpp | 4 | ||||
-rw-r--r-- | src/util/compatibility.h | 28 | ||||
-rw-r--r-- | src/util/statsmanager.cpp | 4 | ||||
-rw-r--r-- | src/waveform/waveform.h | 2 |
7 files changed, 8 insertions, 36 deletions
diff --git a/src/controllers/bulk/bulkcontroller.cpp b/src/controllers/bulk/bulkcontroller.cpp index a087d5574d..0f30ebaee1 100644 --- a/src/controllers/bulk/bulkcontroller.cpp +++ b/src/controllers/bulk/bulkcontroller.cpp @@ -28,7 +28,7 @@ void BulkReader::run() { m_stop = 0; unsigned char data[255]; - while (atomicLoadAcquire(m_stop) == 0) { + while (m_stop.loadAcquire() == 0) { // Blocked polling: The only problem with this is that we can't close // the device until the block is released, which means the controller // has to send more data diff --git a/src/engine/cachingreader/cachingreader.cpp b/src/engine/cachingreader/cachingreader.cpp index 67f14e2389..5f998139bb 100644 --- a/src/engine/cachingreader/cachingreader.cpp +++ b/src/engine/cachingreader/cachingreader.cpp @@ -234,7 +234,7 @@ void CachingReader::process() { update.status == CHUNK_READ_EOF || update.status == CHUNK_READ_INVALID || update.status == CHUNK_READ_DISCARDED); - if (atomicLoadAcquire(m_state) == STATE_TRACK_LOADING) { + if (m_state.loadAcquire() == STATE_TRACK_LOADING) { // Discard all results from pending read requests for the // previous track before the next track has been loaded. freeChunk(pChunk); diff --git a/src/engine/cachingreader/cachingreaderworker.cpp b/src/engine/cachingreader/cachingreaderworker.cpp index 5353b7b105..7f1ec004f0 100644 --- a/src/engine/cachingreader/cachingreaderworker.cpp +++ b/src/engine/cachingreader/cachingreaderworker.cpp @@ -90,7 +90,7 @@ void CachingReaderWorker::run() { QThread::currentThread()->setObjectName(QString("CachingReaderWorker %1").arg(++id)); Event::start(m_tag); - while (!atomicLoadAcquire(m_stop)) { + while (!m_stop.loadAcquire()) { // Request is initialized by reading from FIFO CachingReaderChunkReadRequest request; if (m_newTrackAvailable) { diff --git a/src/library/export/trackexportworker.cpp b/src/library/export/trackexportworker.cpp index dd9a16f567..d0e9c5ccf8 100644 --- a/src/library/export/trackexportworker.cpp +++ b/src/library/export/trackexportworker.cpp @@ -81,7 +81,7 @@ void TrackExportWorker::run() { // on the bar, which looks really nice. emit progress(it->fileName(), i, copy_list.size()); copyFile((*it).asFileInfo(), it.key()); - if (atomicLoadAcquire(m_bStop)) { + if (m_bStop.loadAcquire()) { emit canceled(); return; } @@ -162,7 +162,7 @@ TrackExportWorker::OverwriteAnswer TrackExportWorker::makeOverwriteRequest( // We can be either canceled from the other thread, or as a return value // from this call. First check for a call from the other thread. - if (atomicLoadAcquire(m_bStop)) { + if (m_bStop.loadAcquire()) { return OverwriteAnswer::CANCEL; } diff --git a/src/util/compatibility.h b/src/util/compatibility.h index 08f2d83334..078f4538b8 100644 --- a/src/util/compatibility.h +++ b/src/util/compatibility.h @@ -129,34 +129,6 @@ inline QScreen* getPrimaryScreen() { } template <typename T> -inline T atomicLoadAcquire(const QAtomicInteger<T>& atomicInt) { - // TODO: QBasicAtomicInteger<T>::load() is deprecated and should be - // replaced with QBasicAtomicInteger<T>::loadRelaxed() However, the - // proposed alternative has just been introduced in Qt 5.14. Until the - // minimum required Qt version of Mixxx is increased, we need a version - // check here -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) - return atomicInt.loadAcquire(); -#else - return atomicInt.load(); -#endif -} - -template <typename T> -inline T* atomicLoadAcquire(const QAtomicPointer<T>& atomicPtr) { - // TODO: QBasicAtomicPointer<T>::load() is deprecated and should be - // replaced with QBasicAtomicPointer<T>::loadRelaxed() However, the - // proposed alternative has just been introduced in Qt 5.14. Until the - // minimum required Qt version of Mixxx is increased, we need a version - // check here -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) - return atomicPtr.loadAcquire(); -#else - return atomicPtr.load(); -#endif -} - -template <typename T> inline T atomicLoadRelaxed(const QAtomicInteger<T>& atomicInt) { // TODO: QBasicAtomicInteger<T>::load() is deprecated and should be // replaced with QBasicAtomicInteger<T>::loadRelaxed() However, the diff --git a/src/util/statsmanager.cpp b/src/util/statsmanager.cpp index b771a2ed8c..46e8c5d017 100644 --- a/src/util/statsmanager.cpp +++ b/src/util/statsmanager.cpp @@ -248,7 +248,7 @@ void StatsManager::run() { processIncomingStatReports(); m_statsPipeLock.unlock(); - if (atomicLoadAcquire(m_emitAllStats) == 1) { + if (m_emitAllStats.loadAcquire() == 1) { for (auto it = m_stats.constBegin(); it != m_stats.constEnd(); ++it) { emit statUpdated(it.value()); @@ -256,7 +256,7 @@ void StatsManager::run() { m_emitAllStats = 0; } - if (atomicLoadAcquire(m_quit) == 1) { + if (m_quit.loadAcquire() == 1) { qDebug() << "StatsManager thread shutting down."; break; } diff --git a/src/waveform/waveform.h b/src/waveform/waveform.h index e9df058148..c266f46332 100644 --- a/src/waveform/waveform.h +++ b/src/waveform/waveform.h @@ -99,7 +99,7 @@ class Waveform { // Atomically lookup the completion of the waveform. Represents the number // of data elements that have been processed out of dataSize. int getCompletion() const { - return atomicLoadAcquire(m_completion); + return m_completion.loadAcquire(); } void setCompletion(int completion) { m_completion = completion; |