Missing lock in MidiKeyboardState


#1

Howdy. I’m wondering if there is a lock missing in MidiKeyboardState::processNextMidiEvent().
every other method in the class that changes the noteState[] object by calling noteOnInternal has a lock before modifying it. This method is public, so is a lock missing? Perhaps a check is needed to see if the CriticalSection the class holds is locked when that method is called?


#2

I think the idea is that processNextMidiEvent will be called in a tight-loop and therefore the caller is responsible for taking a lock. Looking at all the JUCE code and examples that use that method, they all take a lock beforehand. But we definitely need to update the documentation. I’ll sort that out.