kpccl_graph_synchronize
等待直到kpccl图中的所有task都完成。
接口定义
void kpccl_graph_synchronize(kpccl_graph_h graph);
参数
参数名 |
类型 |
描述 |
输入/输出 |
|---|---|---|---|
graph |
kpccl_graph_h |
需要等待执行其中task的kpccl graph |
输入 |
示例
#include <stdio.h>
#include "kpccl.h"
static inline void task_str(void *args)
{
printf("graph task test.\n");
}
int main()
{
int executor_num = kpccl_get_num_executors();
int executors[executor_num];
for (int i =0; i < executor_num; i++) {
executors[i] = i;
}
kpccl_egroup_h egroup = kpccl_egroup_create(executors, executor_num);
kpccl_graph_h graph = kpccl_graph_create(egroup);
kpccl_task_desc_t task_desc = {
.func = task_str,
.args = nullptr,
};
kpccl_graph_add_task(graph, &task_desc, nullptr);
kpccl_graph_synchronize(graph);
kpccl_graph_destroy(graph);
kpccl_egroup_destroy(egroup);
return 0;
}
运行结果如下。
graph task test.
上述示例演示了向graph图提交task、并等待直到graph图的全部task执行完成的流程。上述kpccl_graph_synchronize函数等待graph图中所有task都执行完成,才继续往下执行。
父主题: 计算图编程函数