CVS difference for ai12s/ai12-0321-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0321-1.txt

--- ai12s/ai12-0321-1.txt	2019/03/10 01:52:31	1.3
+++ ai12s/ai12-0321-1.txt	2019/03/12 04:55:54	1.4
@@ -1,6 +1,8 @@
-!standard C.6.4(0)                                   19-03-09  AI12-0321-1/02
-!standard C.6.5(0)
+!standard C.6.3(0)                                   19-03-11  AI12-0321-1/03
+!standard C.6.4(0)
 !class Amendment 19-03-07
+!status Amendment 1-2012 19-03-11
+!status ARG Approved 9-0-1  19-03-11
 !status work item 19-03-07
 !status received 19-03-07
 !priority Low
@@ -49,7 +51,7 @@
 
 !wording
 
-C.6.4  The Package System.Atomic_Operations.Test_And_Set
+C.6.3  The Package System.Atomic_Operations.Test_And_Set
 
 The language-defined package System.Atomic_Operations.Test_And_Set
 provides an operation to atomically set and clear an atomic flag object.
@@ -83,14 +85,14 @@
 An atomic flag object can either be considered to be set or cleared.
 
 Atomic_Test_And_Set performs an atomic test-and-set operation on Item.
-Item is set to some implementation defined nonzero "set" value and the
-return value is true if and only if the previous contents were "set".
+Item is set to some implementation defined nonzero value. The function returns 
+True if the previous contents were nonzero, and otherwise returns False.
 
 Atomic_Clear performs an atomic clear operation on Item. After the
 operation, Item contains 0. This call should be used in conjunction with
 Atomic_Test_And_Set.
 
-C.6.5  The Package System.Atomic_Operations.Arithmetic
+C.6.4  The Package System.Atomic_Operations.Arithmetic
 
 The language-defined package System.Atomic_Operations.Arithmetic
 provides operations to perform arithmetic atomically on objects of
@@ -114,18 +116,6 @@
                               Value : Atomic_Type)
      with Convention => Intrinsic;
 
-   procedure Atomic_Bitwise_And (Item  : aliased in out Atomic_Type;
-                                 Value : Atomic_Type)
-     with Convention => Intrinsic;
-
-   procedure Atomic_Bitwise_Or (Item  : aliased in out Atomic_Type;
-                                Value : Atomic_Type)
-     with Convention => Intrinsic;
-
-   procedure Atomic_Xor (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
@@ -136,73 +126,37 @@
       Value : Atomic_Type) return Atomic_Type
      with Convention => Intrinsic;
 
-   function Atomic_Fetch_And_Bitwise_And
-     (Item  : aliased in out Atomic_Type;
-      Value : Atomic_Type) return Atomic_Type
-     with Convention => Intrinsic;
-
-   function Atomic_Fetch_And_Bitwise_Or
-     (Item  : aliased in out Atomic_Type;
-      Value : Atomic_Type) return Atomic_Type
-     with Convention => Intrinsic;
-
-   function Atomic_Fetch_And_Xor
-     (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.Arithmetic;
 
-The following procedures perform the operation suggested by the name.
-  i.e.  Item := Item op Value;
 
    procedure Atomic_Add (Item  : aliased in out Atomic_Type;
                          Value : Atomic_Type)
       with Intrinsic;
 
+      Atomically performs: Item := Item + Value;
+
    procedure Atomic_Subtract (Item  : aliased in out Atomic_Type;
                               Value : Atomic_Type)
     with Intrinsic;
 
-   procedure Atomic_Bitwise_And (Item  : aliased in out Atomic_Type;
-                                 Value : Atomic_Type)
-    with Intrinsic;
+      Atomically performs: Item := Item - Value;
 
-   procedure Atomic_Bitwise_Or (Item  : aliased in out Atomic_Type;
-                                Value : Atomic_Type)
-    with Intrinsic;
 
-   procedure Atomic_Xor (Item  : aliased in out Atomic_Type;
-                         Value : Atomic_Type)
-    with Intrinsic;
-
-The following functions perform the operation suggested by the name,
-and return the value that had previously been in Item.
-  i.e.  Tmp := Item; Item := Item op Value; return Tmp;
-
    function Atomic_Fetch_And_Add (Item  : aliased in out Atomic_Type;
                                   Value : Atomic_Type) return Atomic_Type
     with Intrinsic;
 
-   function Atomic_Fetch_And_Subtract (Item  : aliased in out Atomic_Type;
-                                       Value : Atomic_Type) return Atomic_Type
-    with Intrinsic;
-
-   function Atomic_Fetch_And_Bitwise_And (Item  : aliased in out Atomic_Type;
-                                          Value : Atomic_Type) return Atomic_Type
-    with Intrinsic;
+     Atomically performs: Tmp := Item; Item := Item + Value; return Tmp;
 
-   function Atomic_Fetch_And_Bitwise_Or (Item  : aliased in out Atomic_Type;
-                                         Value : Atomic_Type) return Atomic_Type
-    with Intrinsic;
 
-   function Atomic_Fetch_And_Xor (Item  : aliased in out Atomic_Type;
-                                  Value : Atomic_Type) return Atomic_Type
+   function Atomic_Fetch_And_Subtract (Item  : aliased in out Atomic_Type;
+                                       Value : Atomic_Type) return Atomic_Type
     with Intrinsic;
 
+     Atomically performs: Tmp := Item; Item := Item - Value; return Tmp;
 
 !discussion
 

Questions? Ask the ACAA Technical Agent