diff options
Diffstat (limited to 'libs/ardour/graph.cc')
-rw-r--r-- | libs/ardour/graph.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libs/ardour/graph.cc b/libs/ardour/graph.cc index 1c1f784f41..99fc524534 100644 --- a/libs/ardour/graph.cc +++ b/libs/ardour/graph.cc @@ -222,17 +222,18 @@ Graph::prep() _finished_refcount = _init_finished_refcount[chain]; /* Trigger the initial nodes for processing, which are the ones at the `input' end */ + pthread_mutex_lock (&_trigger_mutex); for (i=_init_trigger_list[chain].begin(); i!=_init_trigger_list[chain].end(); i++) { - trigger (i->get ()); + /* don't use ::trigger here, as we have already locked the mutex */ + _trigger_queue.push_back (i->get ()); } + pthread_mutex_unlock (&_trigger_mutex); } void Graph::trigger (GraphNode* n) { - pthread_mutex_lock (&_trigger_mutex); _trigger_queue.push_back (n); - pthread_mutex_unlock (&_trigger_mutex); } /** Called when a node at the `output' end of the chain (ie one that has no-one to feed) |