Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

C.6.3 Пакет System.Atomic_Operations.Test_and_Set

Определяемый языком пакет System.Atomic_Operations.Test_And_Set предоставляет операцию для атомарного установки и сброса объекта атомарного флага.

Статическая семантика

Библиотечный пакет System.Atomic_Operations.Test_And_Set имеет следующее объявление:
package System.Atomic_Operations.Test_And_Set
with Pure, Nonblocking is
type Test_And_Set_Flag is mod определяемое реализацией
with Atomic, Default_Value => 0, Size => определяемое реализацией;
function Atomic_Test_And_Set
(Item : aliased in out Test_And_Set_Flag) return Boolean
with Convention => Intrinsic;
procedure Atomic_Clear
(Item : aliased in out Test_And_Set_Flag)
with Convention => Intrinsic;
function Is_Lock_Free
(Item : aliased Test_And_Set_Flag) return Boolean
with Convention => Intrinsic;
end System.Atomic_Operations.Test_And_Set;
Test_And_Set_Flag представляет состояние объекта атомарного флага. Объект атомарного флага может считаться установленным или сброшенным.
Atomic_Test_And_Set выполняет атомную операцию установки и проверки на Item. Item устанавливается на какое-то определённое реализацией ненулевое значение. Функция возвращает True, если предыдущее содержимое было ненулевым, и False в противном случае.
Atomic_Clear выполняет атомную операцию сброса на Item. После операции Item содержит 0. Этот вызов следует использовать совместно с Atomic_Test_And_Set.


Spec-Zone.ru

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