13
0

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
This commit is contained in:
Carl Hetherington 2012-06-28 15:37:54 +00:00
parent 1708ab55b9
commit e09e185e3e

View File

@ -24,6 +24,7 @@
#include <glibmm/fileutils.h> #include <glibmm/fileutils.h>
#include <glibmm/miscutils.h> #include <glibmm/miscutils.h>
#include <glibmm/thread.h>
#include "pbd/controllable_descriptor.h" #include "pbd/controllable_descriptor.h"
#include "pbd/error.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 in a single jack_midi_event_write then some bridges will only pass the
first on to ALSA. 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) { for (MIDIControllables::iterator r = controllables.begin(); r != controllables.end(); ++r) {
MIDI::byte* end = (*r)->write_feedback (buf, bsize); MIDI::byte* end = (*r)->write_feedback (buf, bsize);
if (end != buf) { if (end != buf) {