共用方式為


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_indicesarray_of_statuses 陣列中的元素數目。

    如果 array_of_requests 不包含作用中的句柄,則函式會立即傳回 outcount 參數設定為 MPI_UNDEFINED

    如果在完成任何要求之前中斷此函式,則呼叫會傳回 outcount 參數設為零。

  • array_of_indices
    傳回已完成作業 之array_of_requests 參數內的索引。 陣列索引在 C 中是以零起始,在 Fortran 中為一個起始。

  • 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

另請參閱

MPI 點對點函式

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome