Spec-Zone.ru › GNU Fortran 12

7.2.20 _gfortran_caf_event_wait — Ожидание наступления события

Описание:

Ожидание, пока счётчик событий достигнет значения, по крайней мере, указанного until_count; в случае успеха атомарно уменьшить переменную события на это значение и вернуть результат.

Синтаксис:

void _gfortran_caf_event_wait (caf_token_t token, size_t index, int until_count, int *stat, char *errmsg, size_t errmsg_len)

Аргументы:
token intent(in) Непрозрачный указатель, идентифицирующий комассив.
index intent(in) Индекс массива; индекс первого элемента массива — 0. Для скалярных значений всегда равен 0.
until_count intent(in) Количество событий, которые должны быть доступны перед возвратом функции.
stat intent(out) Хранит значение STAT; может быть NULL.
errmsg intent(out) В случае ошибки устанавливается в сообщение об ошибке; может быть NULL.
errmsg_len intent(in) Размер буфера errmsg.
ПРИМЕЧАНИЯ

Эта функция работает только с локальным комассивом. Она действует как цикл, атомарно проверяющий значение переменной события и прерывает цикл, если значение больше или равно запрошенному количеству. Перед возвратом функции переменная события должна быть уменьшена на запрошенное значение until_count. Возможная реализация — цикл ожидания с определённым количеством вращений (возможно, зависящим от соотношения числа потоков к количеству доступных ядер) , за которым следует другая стратегия ожидания, например, ожидание со сном (возможно, с увеличивающейся длительностью сна) или, если это возможно, ожидание с помощью futex.

Указанное утверждение является оператором управления изображением, но не подразумевает синхронизацию памяти. Тем не менее, все предшествующие операции передачи данных от этого изображения к указанному удалённому изображению должны быть завершены, прежде чем event_wait на удалённом изображении вернёт результат.

Далее: _gfortran_caf_event_query, Предыдущее: _gfortran_caf_event_post, Вверх: Документация ABI функций [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gfortran/_005fgfortran_005fcaf_005fevent_005fwait.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API