- Router* router
- Pointer back to router for convenience.
- int destroying
- Flag to indicate if graph is currently getting destroyed.
- GraphNode** graph_nodes
- List of all graph nodes (only used for memory management)
- GraphNode** init_trigger_list
- Nodes without incoming edges.
- gint terminal_node_count
- Number of graph nodes without an outgoing edge.
- GraphNode* terminal_nodes
- Used only when constructing the graph so we can traverse the graph backwards to calculate the playback latencies.
- gint terminal_refcnt
- Remaining unprocessed terminal nodes in this cycle.
- GraphNode** trigger_queue
- Working trigger nodes to be updated while processing.
- int trigger_queue_size
- Max size - preallocated array.
- ZixSem callback_start
- Synchronization with main process callback.
- ZixSem trigger
- Wake up graph node process threads.
- gint terminate
- flag to exit, terminate all process-threads
- int idle_thread_cnt
- Number of threads waiting for work.
- pthread_t main_thread
If backend is JACK, jack threads are used.