LAPI_Nopoll_wait 子例程
用途
等待计数器更新而不轮询。
库
可用性库 (liblapi_r.a)
C 语法
#include <lapi.h>
void LAPI_Nopoll_wait(hndl, cntr_ptr, val, cur_cntr_val)
lapi_handle_t hndl;
lapi_cntr_t *cntr_ptr;
int val;
int *cur_cntr_val;
FORTRAN 语法
include 'lapif.h'
int LAPI_NOPOLL_WAIT(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: 恢复 (分块)
此子例程等待计数器更新而不轮询 (即,不显式调用 LAPI 的内部通信分派器)。 此调用可能或可能不检查通过 LAPI 上下文 hndl到达的消息。 cur_cntr_val 变量设置为当前计数器值。 尽管它具有比 LAPI_Waitcntr更高的等待时间,但 LAPI_Nopoll_wait 会释放处理器以用于其他用途。
注: 要使用此子例程,必须将 lapi_info_t 结构中的 lib_vers 字段设置为 L2_LIB 或 LAST_LIB。
参数
- INPUT
- hndl
- 指定 LAPI 句柄。
- 值
- 指定计数器在返回之前需要达到的相对计数器值 (从 1开始)。
- cur_cntr_val
- 指定当前计数器的整数值。 此参数的值可以是 NULL (在 C 中) 或 LAPI_ADDR_NULL (在 FORTRAN 中)。
- 输入/输出
- cntr_ptr
- 指向 C 中的 lapi_cntr_t 结构。
- cntr
- 是 FORTRAN 中的 lapi_cntr_t 结构。
- 输出
- ierror
- 指定 FORTRAN 返回码。 这始终是最后一个参数。
返回值
- 成功 (LAPI_SUCCESS)
- 指示函数调用已成功完成。
- LAPI_ERR_CNTR_NULL
- 指示 cntr_ptr 指针为 NULL (在 C 中) 或 cntr 的值为 LAPI_ADDR_NULL (在 FORTRAN 中)。
- LAPI_ERR_CNTR_VAL
- 指示传入的 val 小于或等于 0。
- LAPI_ERR_HNDL_INVALID
- 指示传入的 hndl 无效 (未初始化或处于终止状态)。
- LAPI_ERR_MULTIPLE_WAITERS
- 指示多个线程正在等待计数器。
- 已清除的 LAPI_ERR_TGT_PURGED
- 指示由于调用了 LAPI_Purge_totask() 而提前返回了子例程。
限制
不 建议在运行 Parallel Environment (PE) 的系统上使用此子例程。
位置
- /usr/lib/liblapi_r.a