Skip to content

Commit

Permalink
lib: remove BT_GRAPH_RUN_STATUS_END
Browse files Browse the repository at this point in the history
This patch makes bt_graph_run() return `BT_GRAPH_RUN_STATUS_OK` when the
graph is done running instead of `BT_GRAPH_RUN_STATUS_END`, as one of
them is redundant here and keeping an OK status looks like the right
decision.

bt_graph_run_once() is different: it returns
`BT_GRAPH_RUN_ONCE_STATUS_OK` once it's done running a single time, and
eventually `BT_GRAPH_RUN_ONCE_STATUS_END` when all the sink components
are ended.

In bt2.Graph.run(), the special case for `bt2.Stop` is removed as
`status` is never `BT_GRAPH_RUN_STATUS_END`.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I9d642292083c3bce0b7be263242f5b23d3713735
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2281
CI-Build: Francis Deslauriers <francis.deslauriers@efficios.com>
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
  • Loading branch information
eepp authored and frdeso committed Oct 31, 2019
1 parent 3a24696 commit 9669d69
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 14 deletions.
1 change: 0 additions & 1 deletion include/babeltrace2/graph/graph.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@ typedef enum bt_graph_run_status {
BT_GRAPH_RUN_STATUS_ERROR = __BT_FUNC_STATUS_ERROR,
BT_GRAPH_RUN_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
BT_GRAPH_RUN_STATUS_AGAIN = __BT_FUNC_STATUS_AGAIN,
BT_GRAPH_RUN_STATUS_END = __BT_FUNC_STATUS_END,
} bt_graph_run_status;

extern bt_graph_run_status bt_graph_run(bt_graph *graph);
Expand Down
9 changes: 1 addition & 8 deletions src/bindings/python/bt2/bt2/graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,7 @@ def run_once(self):

def run(self):
status = native_bt.graph_run(self._ptr)

try:
utils._handle_func_status(status, 'graph object stopped running')
except bt2.Stop:
# done
return
except Exception:
raise
utils._handle_func_status(status, 'graph object stopped running')

def add_interrupter(self, interrupter):
utils._check_type(interrupter, bt2_interrupter.Interrupter)
Expand Down
4 changes: 1 addition & 3 deletions src/cli/babeltrace2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2536,7 +2536,7 @@ int cmd_run(struct bt_config *cfg)

switch (run_status) {
case BT_GRAPH_RUN_STATUS_OK:
break;
goto end;
case BT_GRAPH_RUN_STATUS_AGAIN:
if (bt_interrupter_is_set(the_interrupter)) {
BT_CLI_LOGW_APPEND_CAUSE(
Expand All @@ -2558,8 +2558,6 @@ int cmd_run(struct bt_config *cfg)
}
}
break;
case BT_GRAPH_RUN_STATUS_END:
goto end;
default:
if (bt_interrupter_is_set(the_interrupter)) {
BT_CLI_LOGW_APPEND_CAUSE(
Expand Down
11 changes: 9 additions & 2 deletions src/lib/graph/graph.c
Original file line number Diff line number Diff line change
Expand Up @@ -773,8 +773,15 @@ enum bt_graph_run_status bt_graph_run(struct bt_graph *graph)
}
} while (status == BT_FUNC_STATUS_OK);

if (g_queue_is_empty(graph->sinks_to_consume)) {
status = BT_FUNC_STATUS_END;
if (status == BT_FUNC_STATUS_END) {
/*
* The last call to consume_no_check() returned
* `BT_FUNC_STATUS_END`, but bt_graph_run() has no
* `BT_GRAPH_RUN_STATUS_END` status: replace with
* `BT_GRAPH_RUN_STATUS_OK` (success: graph ran
* completely).
*/
status = BT_FUNC_STATUS_OK;
}

end:
Expand Down

0 comments on commit 9669d69

Please sign in to comment.