Skip to content

Commit

Permalink
Use MMutexLockerDebug
Browse files Browse the repository at this point in the history
  • Loading branch information
daschuer committed Jan 22, 2025
1 parent 02780b3 commit e777841
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
20 changes: 9 additions & 11 deletions src/controllers/midi/midicontroller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ MidiController::MidiController(const QString& deviceName)

void MidiController::slotBeforeEngineShutdown() {
Controller::slotBeforeEngineShutdown();
const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "slotBeforeEngineShutdown");
m_pMapping->removeInputHandlerMappings();
}

Expand All @@ -58,15 +58,15 @@ QString MidiController::mappingExtension() {
}

void MidiController::setMapping(std::shared_ptr<LegacyControllerMapping> pMapping) {
const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "setMapping");
m_pMapping = downcastAndClone<LegacyMidiControllerMapping>(pMapping.get());
}

std::shared_ptr<LegacyControllerMapping> MidiController::cloneMapping() {
const auto locker = MMutexLockerDebug(&m_mappingMutex, "cloneMapping");
if (!m_pMapping) {
return nullptr;
}
const auto locker = lockMutex(&m_mappingMutex);
return std::make_shared<LegacyMidiControllerMapping>(*m_pMapping);
}

Expand Down Expand Up @@ -97,12 +97,11 @@ bool MidiController::applyMapping(const QString& resourcePath) {
}

void MidiController::createOutputHandlers() {
const auto locker = MMutexLockerDebug(&m_mappingMutex, "createOutputHandlers");
if (!m_pMapping) {
return;
}

const auto locker = lockMutex(&m_mappingMutex);

if (m_pMapping->getOutputMappings().isEmpty()) {
return;
}
Expand Down Expand Up @@ -230,11 +229,10 @@ void MidiController::clearTemporaryInputMappings() {
}

void MidiController::commitTemporaryInputMappings() {
const auto locker = MMutexLockerDebug(&m_mappingMutex, "commitTemporaryInputMappings");
if (!m_pMapping) {
return;
}
const auto locker = lockMutex(&m_mappingMutex);

// We want to replace duplicates that exist in m_mapping but allow duplicates
// in m_temporaryInputMappings. To do this, we first remove every key in
// m_temporaryInputMappings from m_mapping's input mappings.
Expand Down Expand Up @@ -294,7 +292,7 @@ void MidiController::receivedShortMessage(unsigned char status,
}
}

const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "receivedShortMessage");
auto it = m_pMapping->getInputMappings().constFind(mappingKey.key);
for (; it != m_pMapping->getInputMappings().constEnd() && it.key() == mappingKey.key; ++it) {
processInputMapping(it.value(), status, control, value, timestamp);
Expand Down Expand Up @@ -597,7 +595,7 @@ void MidiController::receive(const QByteArray& data, mixxx::Duration timestamp)
}
}

const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "receive");
const auto [inputMappingsBegin, inputMappingsEnd] =
m_pMapping->getInputMappings().equal_range(mappingKey.key);
std::for_each(inputMappingsBegin, inputMappingsEnd, [&](const auto& inputMapping) {
Expand Down Expand Up @@ -649,7 +647,7 @@ QJSValue MidiController::makeInputHandler(int status, int midino, const QJSValue

const auto midiKey = MidiKey(status, midino);

const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "makeInputHandler");
auto it = m_pMapping->getInputMappings().constFind(midiKey.key);
if (it != m_pMapping->getInputMappings().constEnd() &&
it.value().options.testFlag(MidiOption::Script) &&
Expand All @@ -676,6 +674,6 @@ QJSValue MidiController::makeInputHandler(int status, int midino, const QJSValue

bool MidiController::removeInputMapping(
uint16_t key, const MidiInputMapping& mapping) {
const auto locker = lockMutex(&m_mappingMutex);
const auto locker = MMutexLockerDebug(&m_mappingMutex, "removeInputMapping");
return m_pMapping->removeInputMapping(key, mapping);
}
6 changes: 3 additions & 3 deletions src/controllers/midi/midicontroller.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "controllers/midi/legacymidicontrollermapping.h"
#include "controllers/midi/midimessage.h"
#include "controllers/softtakeover.h"
#include "util/compatibility/qmutex.h"
#include "util/mutex.h"

class MidiOutputHandler;
class MidiController;
Expand Down Expand Up @@ -48,10 +48,10 @@ class MidiController : public Controller {
}

bool isMappable() const override {
const auto locker = MMutexLockerDebug(&m_mappingMutex, "isMappable");
if (!m_pMapping) {
return false;
}
const auto locker = lockMutex(&m_mappingMutex);
return m_pMapping->isMappable();
}

Expand Down Expand Up @@ -113,7 +113,7 @@ class MidiController : public Controller {

QHash<uint16_t, MidiInputMapping> m_temporaryInputMappings;
QList<MidiOutputHandler*> m_outputs;
mutable QMutex m_mappingMutex;
mutable MMutex m_mappingMutex;
std::unique_ptr<LegacyMidiControllerMapping> m_pMapping;
SoftTakeoverCtrl m_st;
QList<QPair<MidiInputMapping, unsigned char>> m_fourteen_bit_queued_mappings;
Expand Down

0 comments on commit e777841

Please sign in to comment.