8.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.
Указанное утверждение является оператором управления изображениями, но не подразумевает синхронизацию памяти. Тем не менее, все предыдущие коммуникации push этого изображения с указанным удалённым изображением должны быть завершены до того, как функция
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-11.1.0/gfortran/_005fgfortran_005fcaf_005fevent_005fwait.html