mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-27 02:20:05 +00:00
Fixed a potential data race in the MIDI devices unit tests
This commit is contained in:
parent
f617bea5fa
commit
7b56f43ded
1 changed files with 11 additions and 4 deletions
|
|
@ -195,12 +195,15 @@ void MidiOutput::run()
|
|||
{
|
||||
void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message) override
|
||||
{
|
||||
const ScopedLock sl (messageLock);
|
||||
|
||||
messageSource = source;
|
||||
messageReceived = message;
|
||||
}
|
||||
|
||||
MidiInput* messageSource = nullptr;
|
||||
MidiMessage messageReceived;
|
||||
CriticalSection messageLock;
|
||||
};
|
||||
|
||||
MessageCallbackHandler handler;
|
||||
|
|
@ -245,11 +248,15 @@ void MidiOutput::run()
|
|||
// Pump the message thread for a bit to allow the message to be delivered
|
||||
MessageManager::getInstance()->runDispatchLoopUntil (100);
|
||||
|
||||
expect (handler.messageSource == midiInput.get());
|
||||
{
|
||||
const ScopedLock sl (handler.messageLock);
|
||||
|
||||
expect (handler.messageReceived.getChannel() == testMessage.getChannel());
|
||||
expect (handler.messageReceived.getNoteNumber() == testMessage.getNoteNumber());
|
||||
expect (handler.messageReceived.getVelocity() == testMessage.getVelocity());
|
||||
expect (handler.messageSource == midiInput.get());
|
||||
|
||||
expect (handler.messageReceived.getChannel() == testMessage.getChannel());
|
||||
expect (handler.messageReceived.getNoteNumber() == testMessage.getNoteNumber());
|
||||
expect (handler.messageReceived.getVelocity() == testMessage.getVelocity());
|
||||
}
|
||||
|
||||
midiInput->stop();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue