From e09e185e3e08665db9299188d8f15fd3de733262 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 28 Jun 2012 15:37:54 +0000 Subject: [PATCH] Add what I think is a missing lock when reading controllables. git-svn-id: svn://localhost/ardour2/branches/3.0@12958 d708f5d6-7413-0410-9779-e7cbd77b26cf --- .../surfaces/generic_midi/generic_midi_control_protocol.cc | 7 +++++++ 1 file changed, 7 insertions(+) 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) {