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 达到 valcntrval的值递减。 在这种情况下,将使用 "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