funzione MSMPI_Waitsome_interruptible
Attende il completamento di almeno una delle operazioni associate agli handle attivi nell'elenco oppure la chiamata viene interrotta da un altro thread che chiama MSMPI_Queuelock_acquire.
Sintassi
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[]
);
Parametri
conteggio
Numero di richieste nella matrice array_of_requests.array_of_requests
Matrice di handle di richiesta delle operazioni su cui attendere il completamento. Se un handle di richiesta è stato allocato da una funzione di comunicazione non bloccante, viene deallocata e l'handle associato viene impostato su MPI_REQUEST_NULL.outcount [out]
Numero di richieste specificate nel parametro array_of_requests che vengono completate e il numero di elementi nelle matrici array_of_indices e array_of_statuses .Se il array_of_requests non contiene handle attivi, la funzione restituisce immediatamente con il parametro outcount impostato su MPI_UNDEFINED.
Se questa funzione viene interrotta prima del completamento di qualsiasi richiesta, la chiamata restituisce con il parametro outcount impostato su zero.
array_of_indices
Restituisce gli indici all'interno del parametro array_of_requests delle operazioni completate. Gli indici di matrice sono in base zero in C e in Fortran in base uno.array_of_statuses
Restituisce lo stato delle operazioni completate. Gli elementi di questa matrice corrispondono agli elementi della matrice array_of_indices .
Valore restituito
Restituisce MPI_SUCCESS in caso di esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro IERROR .
Se la funzione restituisce un errore diverso da MPI_ERR_IN_STATUS, non aggiorna i campi di errore degli stati nel parametro array_of_statuses .
Commenti
In un ambiente multithread, gli utenti devono ottenere il blocco MPI Microsoft globale usando la funzione MSMPI_Queuelock_acquire prima di chiamare MSMPI_Waitsome_interruptible. Questa funzione viene interrotta quando un altro thread chiama la funzione MSMPI_Queuelock_acquire per accedere alla libreria MPI.
Questa funzione è un'estensione dello standard.
Requisiti
Prodotto |
Pacchetto ridistribuibile DI HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o utilità client HPC Pack 2008 |
Intestazione |
Mpi.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |