b2360a9a0abc121cd9f44c32bbdf71656efa2e83
Session::process_audition calls Graph::swap_process_chain() to handle any pending graph changes (notably route removal depends the graph to switch chains to drop references). However this must not change the Graph::_trigger_queue (which is refilled when processing resumes). Previously routes were added to the trigger_queue, leading to an inconsistent Graph state. When the terminal-count was reached the trigger-queue was not empty. Process threads ran after processing already completed and or concurrently with processing. A common result of that was: delayline.cc:70: virtual void ARDOUR::DelayLine::run(ARDOUR::BufferSet&, ARDOUR::samplepos_t, ARDOUR::samplepos_t, double, ARDOUR::pframes_t, bool): Assertion `lm.locked ()' failed.
Please see the Ardour web site at https://ardour.org/ for all documentation..
For information on building ardour:
https://ardour.org/development.html
Description
Languages
C++
56.5%
C
39.6%
JavaScript
1.3%
Lua
0.9%
Python
0.6%
Other
0.9%