Direct access to ControlObject in midiobject may not be thread safe...
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Critical
|
Albert Santoni | ||
1.6 |
Won't Fix
|
Critical
|
Unassigned | ||
1.7 |
Fix Released
|
Critical
|
Unassigned |
Bug Description
During the merge of Tom's MIDI branch, the following patch came to my attention, I noticed that this method replaces a thread safe call to ControlObjectThread with a direct call to a ControlObject-
Using the cot implementation breaks all midi branch learning / debugging mode code, so I merged in the p->setValue...
This bug is to note this fact and encourage a look at this to determine if this behaviour is safe, and if not to replace it with something safe.
Index: src/midiobject.cpp
=======
--- src/midiobject.cpp (revision 2398)
+++ src/midiobject.cpp (working copy)
@@ -204,10 +221,7 @@
// I'm not sure entirely why buttons should be special here or what the difference is - Adam
if (((ConfigValueMidi *)c->val)
- ControlObjectThread cot(p);
- cot.slotSet(
-
- //p->setValueFr
+ p->set(newValue);
// qDebug() << "New Control Value: " << newValue << " (skipping queueFromMidi call)";
}
Changed in mixxx: | |
assignee: | nobody → psyc0de |
importance: | Undecided → Critical |
Changed in mixxx: | |
assignee: | psyc0de → gamegod |
milestone: | none → 1.6.2 |
status: | New → Fix Committed |
Changed in mixxx: | |
milestone: | 1.7.0-moving → none |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
Might the new MidiMapping class have nullified this bug?