MSMPI_Waitsome_interruptible 函数
等待,直到至少一个与列表中的活动句柄关联的操作完成,或者调用 MSMPI_Queuelock_acquire的另一个线程中断调用。
语法
int MPIAPI MSMPI_Waitsome_interruptible(
int incount,
_Inout_count_(incount) MPI_Request array_of_requests[],
_Out_ int *outcount,
_Out_cap_post_count_(incount,*outcount) int array_of_indices[],
_Out_cap_post_count_(incount,*outcount) int array_of_statuses[]
);
参数
incount
数组中的请求数 array_of_requests。array_of_requests
等待完成的操作的请求句柄数组。 如果请求句柄是由非阻止通信函数分配的,则会解除分配该句柄,并且关联的句柄设置为 MPI_REQUEST_NULL。outcount [out]
在 array_of_requests 参数中指定的请求数(已完成)以及 array_of_indices 和 array_of_statuses 数组中的元素数。如果 array_of_requests 不包含活动句柄,则函数会立即返回,并将 outcount 参数设置为 MPI_UNDEFINED。
如果此函数在完成任何请求之前中断,则调用将返回,并将 outcount 参数设置为零。
array_of_indices
返回已完成的操作的 array_of_requests 参数内的索引。 数组索引在 C 中从零开始,在 Fortran 中从 1 开始。array_of_statuses
返回已完成的操作的状态。 此数组的元素对应于 array_of_indices 数组的元素。
返回值
返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。
在 Fortran 中,返回值存储在 IERROR 参数中。
如果函数返回 MPI_ERR_IN_STATUS以外的错误,则它不会更新 array_of_statuses 参数中状态的错误字段。
注解
在多线程环境中,用户必须先使用 MSMPI_Queuelock_acquire 函数获取全局 Microsoft MPI 锁,然后才能调用 MSMPI_Waitsome_interruptible。 当另一个线程调用 MSMPI_Queuelock_acquire 函数以访问 MPI 库时,此函数将中断。
此函数是标准的扩展。
要求
产品 |
HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具 |
标头 |
Mpi.h |
库 |
Msmpi.lib |
DLL |
Msmpi.dll |