X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fgraph.h;h=4e500d49002417b44854a324134c1e8b2f90f698;hp=74c794707206e6770fa12f616ead62c74e3bfa9e;hb=9b4f9b425f2efce9a6ccc25f7ae062ebc1116a7d;hpb=1e92035335352f8a67cbc3de28a0ad44b7ee02a1 diff --git a/src/lib/graph/graph.h b/src/lib/graph/graph.h index 74c79470..4e500d49 100644 --- a/src/lib/graph/graph.h +++ b/src/lib/graph/graph.h @@ -67,6 +67,7 @@ enum bt_graph_configuration_state { BT_GRAPH_CONFIGURATION_STATE_PARTIALLY_CONFIGURED, BT_GRAPH_CONFIGURATION_STATE_CONFIGURED, BT_GRAPH_CONFIGURATION_STATE_FAULTY, + BT_GRAPH_CONFIGURATION_STATE_DESTROYING, }; struct bt_graph { @@ -89,7 +90,19 @@ struct bt_graph { /* Queue of pointers (weak references) to sink bt_components. */ GQueue *sinks_to_consume; - bool canceled; + /* + * Array of `struct bt_interrupter *`, each one owned by this. + * If any interrupter is set, then this graph is deemed + * interrupted. + */ + GPtrArray *interrupters; + + /* + * Default interrupter to support bt_graph_interrupt(); owned + * by this. + */ + struct bt_interrupter *default_interrupter; + bool in_remove_listener; bool has_sink; @@ -184,6 +197,9 @@ BT_HIDDEN void bt_graph_add_message(struct bt_graph *graph, struct bt_message *msg); +BT_HIDDEN +bool bt_graph_is_interrupted(const struct bt_graph *graph); + static inline const char *bt_graph_configuration_state_string( enum bt_graph_configuration_state state)