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на удалённом изображении вернёт результат.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/_005fgfortran_005fcaf_005fevent_005fwait.html