LAPI_Waitcntr 子例程
用途
等待直到指定的计数器达到指定的值。
库
可用性库 (liblapi_r.a)
C 语法
#include <lapi.h>
int LAPI_Waitcntr(hndl, cntr, val, cur_cntr_val)
lapi_handle_t hndl;
lapi_cntr_t *cntr;
int val;
int *cur_cntr_val;FORTRAN 语法
include 'lapif.h'
LAPI_WAITCNTR(hndl, cntr, val, cur_cntr_val, ierror)
INTEGER hndl
TYPE (LAPI_CNTR_T) :: cntr
INTEGER val
INTEGER cur_cntr_val
INTEGER ierror描述
Type of call: 本地进度监视器 (分块)
此子例程等待直到 cntr 达到或超过指定的 val。 一旦 cntr 达到 val, cntr 由 val的值递减。 在这种情况下,将使用 "decremented" (而不是 "set to zero") ,因为 cntr 可能包含的值大于调用时指定的 val 。 此调用可能或可能不检查通过 LAPI 上下文 hndl到达的消息。 cur_cntr_val 变量设置为当前计数器值。
参数
- INPUT
- hndl
- 指定 LAPI 句柄。
- 值
- 指定计数器需要达到的值。
- 输入/输出
- cntr
- 指定要等待的计数器结构 (在 FORTRAN 中) 或其地址 (在 C 中)。 此参数的值不能为 NULL (在 C 中) 或 LAPI_ADDR_NULL (在 FORTRAN 中)。
- 输出
- cur_cntr_val
- 指定当前计数器的整数值。 此值可以是 NULL (在 C 中) 或 LAPI_ADDR_NULL (在 FORTRAN 中)。
- ierror
- 指定 FORTRAN 返回码。 这始终是最后一个参数。
限制
对于共享内存通信和数据传输,或者对于任务发送到自身的消息, 不会 报告 LAPI 统计信息。
C 示例
要等待计数器达到指定的值,请执行以下操作:
{
int val;
int cur_cntr_val;
lapi_cntr_t some_cntr;
.
.
.
LAPI_Waitcntr(hndl, &some_cntr, val, &cur_cntr_val);
/* Upon return, some_cntr has reached val */
} 返回值
- 成功 (LAPI_SUCCESS)
- 指示函数调用已成功完成。
- LAPI_ERR_CNTR_NULL
- 指示 cntr 指针为 NULL (在 C 中) 或 cntr 的值为 LAPI_ADDR_NULL (在 FORTRAN 中)。
- LAPI_ERR_HNDL_INVALID
- 指示传入的 hndl 无效 (未初始化或处于终止状态)。
位置
- /usr/lib/liblapi_r.a