summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-04 20:44:33 +0200
committerRobin Gareus <robin@gareus.org>2017-07-04 20:44:33 +0200
commitcd30a296917b8cf5cad56baf7a5862ed9dafb871 (patch)
treed3690b90eb3be6d5d183d16aeb634a261f98232a /libs/ardour/session_process.cc
parentc4578db595771b5db9572b23cfe3f9a7ebef66c3 (diff)
Fix session-event queue (multiple writer, single reader)
The reading is done in rt-process thread, but multiple UIs (surfaces, GUI) can produce events to be queued.
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 7788eb2b97..fabf4d7d01 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -1033,6 +1033,7 @@ Session::queue_event (SessionEvent* ev)
} else if (_state_of_the_state & Loading) {
merge_event (ev);
} else {
+ Glib::Threads::Mutex::Lock lm (rb_write_lock);
pending_events.write (&ev, 1);
}
}