Partilhar via


função MSMPI_Waitsome_interruptible

Aguarda até que pelo menos uma das operações associadas a identificadores ativos na lista tenha terminado ou a chamada seja interrompida por outro thread que chame MSMPI_Queuelock_acquire.

Sintaxe

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[]
);

Parâmetros

  • conta
    O número de pedidos na matriz array_of_requests.

  • array_of_requests
    Matriz de identificadores de pedidos das operações nas quais aguardar a conclusão. Se um identificador de pedido tiver sido alocado por uma função de comunicação sem ligação, é desalocado e o identificador associado é definido como MPI_REQUEST_NULL.

  • outcount [out]
    O número de pedidos especificados no parâmetro array_of_requests que estão concluídos e o número de elementos nas matrizes array_of_indices e array_of_statuses .

    Se o array_of_requests não contiver identificadores ativos, a função devolve imediatamente com o parâmetro outcount definido como MPI_UNDEFINED.

    Se esta função for interrompida antes de quaisquer pedidos serem concluídos, a chamada será devolvida com o parâmetro outcount definido como zero.

  • array_of_indices
    Devolve os índices dentro do parâmetro array_of_requests das operações que estão concluídas. Os índices de matriz são baseados em zero em C e baseados em um em Fortran.

  • array_of_statuses
    Devolve o estado das operações que estão concluídas. Os elementos desta matriz correspondem aos elementos da matriz array_of_indices .

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é armazenado no parâmetro IERROR .

Se a função devolver um erro diferente de MPI_ERR_IN_STATUS, não atualiza os campos de erro dos estados no parâmetro array_of_statuses .

Observações

Num ambiente com vários threads, os utilizadores têm de obter o bloqueio global do Microsoft MPI através da função MSMPI_Queuelock_acquire antes de chamarem MSMPI_Waitsome_interruptible. Esta função é interrompida quando outro thread chama a função MSMPI_Queuelock_acquire para aceder à biblioteca de MPI.

Esta função é uma extensão do padrão.

Requisitos

Produto

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package ou HPC Pack 2008 Client Utilities

Cabeçalho

Mpi.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções Ponto a Ponto do MPI

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome