9.26 ATOMIC_CAS — Атомарное сравнение и обмен
- Описание:
-
ATOMIC_CASсравнивает переменную ATOM со значением COMPARE; если значения совпадают, ATOM устанавливается в значение NEW. Дополнительно, OLD устанавливается в значение ATOM, которое использовалось для сравнения. Если присутствует STAT и вызов был успешным, ему присваивается значение 0. Если он присутствует и вызов завершился неудачей, ему присваивается положительное значение; в частности, для коиндексированной ATOM, если удалённый образ остановился, ему присваивается значениеISO_FORTRAN_ENV’sSTAT_STOPPED_IMAGEи если удалённый образ завершился ошибкой, значениеSTAT_FAILED_IMAGE. - Стандарт:
-
TS 18508 или более поздняя версия
- Класс:
-
Атомарная подпрограмма
- Синтаксис:
-
CALL ATOMIC_CAS (ATOM, OLD, COMPARE, NEW [, STAT]) - Аргументы:
-
ATOM Скалярная комассивная или коиндексированная переменная целочисленного типа с ATOMIC_INT_KINDтипом или логического типа сATOMIC_LOGICAL_KINDтипом.OLD Скаляр того же типа и размера, что и ATOM. COMPARE Скалярная переменная того же типа и размера, что и ATOM. NEW Скалярная переменная того же типа, что и ATOM. Если размер отличается, значение преобразуется к размеру ATOM. STAT (необязательно) Скалярная целочисленная переменная стандартного размера. - Пример:
-
program atomic use iso_fortran_env logical(atomic_logical_kind) :: atom[*], prev call atomic_cas (atom[1], prev, .false., .true.)) end program atomic
- См. также:
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/ATOMIC_005fCAS.html