Spec-Zone.ru › GNU Fortran 14

8.30 ATOMIC_CAS — Атомное сравнение и обмен

Описание:

ATOMIC_CAS сравнивает переменную ATOM со значением COMPARE; если значения совпадают, ATOM устанавливается в значение NEW. Кроме того, OLD устанавливается в значение ATOM, которое использовалось для сравнения. Если STAT присутствует и вызов был успешным, ему присваивается значение 0. Если он присутствует и вызов завершился неудачей, ему присваивается положительное значение; в частности, для коиндексированной ATOM, если удалённый образ остановился, ему присваивается значение ISO_FORTRAN_ENV’s STAT_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
См. также:

ATOMIC_DEFINE — Установка переменной атомарно, ATOMIC_REF — Получение значения переменной атомарно, ISO_FORTRAN_ENV

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

Spec-Zone.ru

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