---
title: aclrtValueWait
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_1848.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_1848.html
indexId: 12ff07cdfd4b4985fdd2417f81f24b340211d90608c21d7985b68b3a551e0dd368
---
# aclrtValueWait

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

等待指定内存中的数据满足一定条件后解除阻塞。异步接口。


#### 函数原型

```
aclError aclrtValueWait(void* devAddr, uint64_t value, uint32_t flag, aclrtStream stream)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| devAddr | 输入 | Device侧内存地址。 devAddr的有效内存位宽为64bit。 |
| value | 输入 | 需与内存中的数据作比较的值。 |
| flag | 输入 | 比较的方式，等满足条件后解除阻塞。取值如下： \#define ACL\_STREAM\_WAIT\_VALUE\_GEQ 0x00000000U // 等到(int64\_t)(\*devAddr \- value) >= 0 \#define ACL\_STREAM\_WAIT\_VALUE\_EQ 0x00000001U // 等到\*devAddr == value \#define ACL\_STREAM\_WAIT\_VALUE\_AND 0x00000002U // 等到(\*devAddr & value) != 0 \#define ACL\_STREAM\_WAIT\_VALUE\_NOR 0x00000003U // 等到~(\*devAddr \| value) != 0 |
| stream | 输入 | 执行等待任务的stream。类型定义请参见aclrtStream。 此处支持传NULL，表示使用默认Stream。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。


#### 接口调用示例

接口调用示例，参见内存语义同步(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/runtime_doc_dev_0028.html)。
