diff options
Diffstat (limited to 'libs/ardour/rt_midibuffer.cc')
-rw-r--r-- | libs/ardour/rt_midibuffer.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/rt_midibuffer.cc b/libs/ardour/rt_midibuffer.cc index 29ac4c6fb9..7c1b1f5330 100644 --- a/libs/ardour/rt_midibuffer.cc +++ b/libs/ardour/rt_midibuffer.cc @@ -167,11 +167,15 @@ item_timestamp_earlier (ARDOUR::RTMidiBuffer::Item const & item, samplepos_t tim return item.timestamp < time; } - - uint32_t RTMidiBuffer::read (MidiBuffer& dst, samplepos_t start, samplepos_t end, MidiStateTracker& tracker, samplecnt_t offset) { + Glib::Threads::RWLock::ReaderLock lm (_lock, Glib::Threads::TRY_LOCK); + + if (!lm.locked()) { + return 0; + } + Item* iend = _data+_size; Item* item = lower_bound (_data, iend, start, item_timestamp_earlier); uint32_t count = 0; |