Поделиться через


функция MSMPI_Queuelock_acquire

Получает глобальную блокировку библиотеки MPI Майкрософт. Очередь блокировки — это очередь FIFO.

Синтаксис

void MSMPI_Queuelock_acquire(
  _Out_ MSMPI_Lock_queue *queue
);

Параметры

  • queue [out]
    Указывает на предоставленную пользователем структуру MSMPI_Lock_queue , представляющую позицию вызывающего потока в очереди до тех пор, пока пользователь не спустит блокировку с помощью функции MSMPI_Queuelock_release .

Возвращаемое значение

Эта функция не возвращает значение.

Комментарии

Поведение этой функции зависит от уровня используемой поддержки потоков. Если поддержка потока MPI_THREAD_SERIALIZED или ниже, эта функция получает глобальную блокировку Microsoft MPI, которая обеспечивает сериализацию вызывающих объектов FIFO и прерывает все вызовы функций MSMPI_Waitsome_interruptible , которые выполняются.

Приложения обычно должны выделять структуру очереди в стеке каждый раз, когда они получают блокировку.

Чтобы избежать ошибок, когда потоки используют MSMPI_Waitsome_interruptible в многопоточных приложениях, все потоки должны получить глобальную блокировку перед вызовом функций MPI.

Эта функция является расширением стандарта.

Требования

Продукт

Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI распространяемый пакет или служебные программы клиента ПАКЕТА HPC 2008

Заголовок

Mpi.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции типа "точка — точка" MPI

MSMPI_Lock_queue

MSMPI_Queuelock_release

MSMPI_Waitsome_interruptible