---
title: kupl::queue_submit(item)
description: "向queue提交需要执行的item。相较于kupl_queue_submit接口而言，该接口通过lambda函数特性捕获kupl_queue_submit提交item回调函数的入参，避免用户入参封装行为，提高接口易用性。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_056.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/KunpengHPCKit_developer_056.html
indexId: d57ef2bdb151f73f683b1877a69a7d315f80703620de22702b9761d1b1b2d79e67
---
# kupl::queue_submit(item)

向queue提交需要执行的item。相较于kupl_queue_submit接口而言，该接口通过lambda函数特性捕获kupl_queue_submit提交item回调函数的入参，避免用户入参封装行为，提高接口易用性。

#### 接口定义

int queue_submit(kupl_queue_h queue, kupl_queue_item_desc_t *desc, const std::function<void(void)> &func);


#### 参数


**表1 参数定义**

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| queue | kupl\_queue\_h | 执行 item 的 queue | 输入 |
| desc | kupl\_queue\_item\_desc\_t | queue\_item 的描述 | 输入 |
| func | const std::function<void(void)> | queue\_item 的函数指针 | 输入 |


**表2 kupl_queue_item_desc_t 的数据结构**

| 参数名 | 类型 | 描述 |
| --- | --- | --- |
| field\_mask | uint64\_t | 结构体中有效字段的掩码，使用kupl\_queue\_item\_desc\_field中的位标识。此掩码中未指定的字段将被忽略。 具体可设置的掩码： KUPL\_QUEUE\_ITEM\_DESC\_FIELD\_NAME：name生效 KUPL\_QUEUE\_ITEM\_DESC\_FIELD\_EGROUP：egroup生效 |
| func | kupl\_queue\_item\_func\_t | queue\_item 的函数指针 |
| args | void \* | queue\_item 的参数 |
| name | const char \* | queue\_item 的名字 |
| egroup | kupl\_egroup\_h | 指定当前queue\_item的亲和性信息 |


#### 返回值

成功：返回KUPL_OK

失败：返回KUPL_ERROR


#### 示例

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

int main() 
{ 
    kupl_queue_h queue = kupl_queue_create();
    kupl_queue_item_desc_t desc = {
        .field_mask = KUPL_QUEUE_ITEM_DESC_FIELD_NAME,
        .name = "func_name"
    };
    int ret = kupl::queue_submit(queue, &desc, []() {
        printf("queue submit test\n");
    }); 
    assert(ret == KUPL_OK);
    kupl_queue_wait(queue);
    kupl_queue_destroy(queue);
    return 0;         
}
```

运行结果如下。

```
queue submit test
```

上述示例演示了向queue提交item，并等待直到queue上全部任务执行完成的流程。上述kupl_queue_submit函数向queue上提交需要执行的item。
