---
title: kupl_graph_wait
description: "等待直到kupl图中的所有task都完成。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_041.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_041.html
indexId: d2bdf2522a9b590e5841afb51efd8db6632c0224177c4e741f7c8a2d02fadf7967
---
# kupl_graph_wait

等待直到kupl图中的所有task都完成。

#### 接口定义


void kupl_graph_wait(kupl_graph_h graph);


#### 参数


**表1 参数定义**

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| graph | kupl\_graph\_h | 需要等待执行其中task的kupl graph | 输入 |


#### 示例

```
#include <stdio.h> 
#include "kupl.h" 
#include <assert.h>

static inline void task_str(void *args)
{
    printf("graph task test.\n");
}

int main() 
{ 
    int executor_num = kupl_get_num_executors(); 
    int executors[executor_num]; 
    for (int i = 0; i < executor_num; i++) {
        executors[i] = i;
    } 
    kupl_egroup_h egroup = kupl_egroup_create(executors, executor_num);
    kupl_graph_h graph = kupl_graph_create(egroup); 
    kupl_task_desc_t task_desc = {
        .field_mask = KUPL_TASK_DESC_FIELD_FLAG,
        .func = task_str,
        .args = NULL, 
        .flag = KUPL_TASK_FLAG_IMM,
    };
    kupl_task_info_t info = {
        .type = KUPL_TASK_TYPE_SINGLE,
        .desc = &task_desc,
    };

    int ret = kupl_graph_submit(graph, &info);
    assert(ret == KUPL_OK);

    kupl_graph_wait(graph);
    kupl_graph_destroy(graph);
    kupl_egroup_destroy(egroup);
    return 0;         
}
```

运行结果如下。

```
graph task test.
```

上述示例演示了向graph图提交task、并等待直到graph图的全部task执行完成的流程。上述 kupl_graph_wait函数等待graph图中所有task都执行完成，才继续往下执行。
