}
#endif
-Graph::Graph (Session & session)
- : SessionHandleRef (session)
+Graph::Graph (Session & session)
+ : SessionHandleRef (session)
, _quit_threads (false)
, _execution_sem ("graph_execution", 0)
, _callback_start_sem ("graph_start", 0)
_setup_chain = 1;
_quit_threads = false;
_graph_empty = true;
-
+
reset_thread_list ();
Config->ParameterChanged.connect_same_thread (processor_usage_connection, boost::bind (&Graph::parameter_changed, this, _1));
-#ifdef DEBUG_RT_ALLOC
+#ifdef DEBUG_RT_ALLOC
graph = this;
pbd_alloc_allowed = &::alloc_allowed;
-#endif
+#endif
}
void
/* setup chain == pending chain - we have
to wait till this is no longer true.
*/
- _cleanup_cond.wait (_swap_mutex);
+ _cleanup_cond.wait (_swap_mutex);
}
}
// ok... this cycle is finished now.
// we are the only thread alive.
-
+
this->restart_cycle();
}
}
for (RouteList::iterator ri=routelist->begin(); ri!=routelist->end(); ri++) {
if (rp->direct_feeds (*ri)) {
if (is_feedback (routelist, rp.get(), *ri)) {
- continue;
+ continue;
}
has_output = true;
if (!has_output)
_init_finished_refcount[chain] += 1;
- }
+ }
_pending_chain = chain;
dump(chain);
if (priority) {
struct sched_param rtparam;
-
+
memset (&rtparam, 0, sizeof (rtparam));
rtparam.sched_priority = priority;
-
+
pthread_setschedparam (pthread_self(), SCHED_FIFO, &rtparam);
}
}
}
int
-Graph::routes_no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
+Graph::routes_no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
bool non_rt_pending, bool can_record, int declick)
{
DEBUG_TRACE (DEBUG::ProcessThreads, string_compose ("no-roll graph execution from %1 to %2 = %3\n", start_frame, end_frame, nframes));
if (retval) {
_process_retval = retval;
}
-
+
if (need_butler) {
_process_need_butler = true;
}