鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

kpccl_task_wait

等待直到kpccl图中某特定的task完成。

接口定义

int kpccl_task_wait(kpccl_task_h task);

参数

表1 参数定义

参数名

类型

描述

输入/输出

task

kpccl_task_h

需要等待的特定task对象

输入

示例

#include <stdio.h> 
#include "kpccl.h" 

static inline void task_str(void *args)
{
         printf("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_h task = kpccl_task_create();
         kpccl_task_desc_t task_desc = {
             .func = task_str,
             .args = nullptr,
         };
         kpccl_graph_add_task(graph, &task_desc, task);
         kpccl_task_wait(task); 
         kpccl_task_cleanup(task);
         kpccl_graph_destroy(graph);
         kpccl_egroup_destroy(egroup);
         return 0;         
}

运行结果如下。

task test.

上述示例演示了创建task、通过kpccl_graph_add_task函数将具体任务赋值给task、通过kpccl_task_wait等待该特定task执行完毕的流程。kpccl_task_wait函数将一直检查task状态,等待直至该task完成。