diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc index 25b8d5db85..d6a75f66f9 100644 --- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc +++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc @@ -24,6 +24,7 @@ #include #include +#include #include "pbd/controllable_descriptor.h" #include "pbd/error.h" @@ -284,6 +285,12 @@ GenericMidiControlProtocol::_send_feedback () in a single jack_midi_event_write then some bridges will only pass the first on to ALSA. */ + + Glib::Mutex::Lock lm (controllables_lock, Glib::TRY_LOCK); + if (!lm.locked ()) { + return; + } + for (MIDIControllables::iterator r = controllables.begin(); r != controllables.end(); ++r) { MIDI::byte* end = (*r)->write_feedback (buf, bsize); if (end != buf) {