Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Ada Programming/Libraries/System.Atomic Operations.Modular Arithmetic

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

This language feature has been introduced in Ada 2022. System.Atomic Operations.Modular_Arithmetic is a unit of the Predefined Language Environment since Ada 2022.generic type Atomic_Type is mod <> with Atomic; package System.Atomic_Operations.Modular_Arithmetic with Pure, Nonblocking is procedure Atomic_Add (Item : aliased in out Atomic_Type; Value : Atomic_Type) with Convention => Intrinsic; procedure Atomic_Subtract (Item : aliased in out Atomic_Type; Value : Atomic_Type) with Convention => Intrinsic; function Atomic_Fetch_And_Add (Item : aliased in out Atomic_Type; Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; function Atomic_Fetch_And_Subtract (Item : aliased in out Atomic_Type; Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean with Convention => Intrinsic; end System.Atomic_Operations.Modular_Arithmetic;The operations of this package are defined as follows:procedure Atomic_Add (Item : aliased in out Atomic_Type; Value : Atomic_Type) with Convention => Intrinsic; Atomically performs: Item := Item + Value; procedure Atomic_Subtract (Item : aliased in out Atomic_Type; Value : Atomic_Type) with Convention => Intrinsic; Atomically performs: Item := Item - Value; function Atomic_Fetch_And_Add (Item : aliased in out Atomic_Type; Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; Atomically performs: Tmp := Item; Item := Item + Value; return Tmp; function Atomic_Fetch_And_Subtract (Item : aliased in out Atomic_Type; Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; Atomically performs: Tmp := Item; Item := Item - Value; return Tmp;