summaryrefslogtreecommitdiff
path: root/libs/ardour/async_midi_port.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-06 10:38:49 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-06 10:38:49 -0400
commit018465f7398f956b9188f6c3a45b9b5d31f34242 (patch)
tree6cd4f0fbcf947f75d845a6bbe443ee9090555a36 /libs/ardour/async_midi_port.cc
parent94efddd240f0cef752bfba5e1ccb06eb952221d1 (diff)
exit early from AsyncMIDIPort::drain() if it will never be used in a process callback again
Diffstat (limited to 'libs/ardour/async_midi_port.cc')
-rw-r--r--libs/ardour/async_midi_port.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/async_midi_port.cc b/libs/ardour/async_midi_port.cc
index 22b5438fe0..5bc8e22833 100644
--- a/libs/ardour/async_midi_port.cc
+++ b/libs/ardour/async_midi_port.cc
@@ -145,6 +145,12 @@ AsyncMIDIPort::drain (int check_interval_usecs)
{
RingBuffer< Evoral::Event<double> >::rw_vector vec = { { 0, 0 }, { 0, 0} };
+ if (!AudioEngine::instance()->running() || AudioEngine::instance()->session() == 0) {
+ /* no more process calls - it will never drain */
+ return;
+ }
+
+
if (is_process_thread()) {
error << "Process thread called MIDI::AsyncMIDIPort::drain() - this cannot work" << endmsg;
return;