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

Differences between 1.17 and version 1.18
Log of other versions for file ai12s/ai12-0234-1.txt

--- ai12s/ai12-0234-1.txt	2019/10/02 01:42:48	1.17
+++ ai12s/ai12-0234-1.txt	2020/10/21 04:37:55	1.18
@@ -1,4 +1,4 @@
-!standard C.6.1(0)                                  19-03-14  AI12-0234-1/07
+!standard C.6.1(0)                                  20-10-20  AI12-0234-1/08
 !standard C.6.2(0)
 !class Amendment 17-06-09
 !status Amendment 1-2012 19-03-11
@@ -340,15 +340,16 @@
 
 @xcode<   @b<function> Atomic_Exchange (Item  : @b<aliased in out> Atomic_Type;
                              Value : Atomic_Type) @b<return> Atomic_Type
-     @b<with> Convention =@> Intrinsic;>
+      @b<with> Convention =@> Intrinsic;>
 
-@xcode<   @b<function> Atomic_Compare_And_Exchange (Item    : @b<aliased in out> Atomic_Type;
-                                         Prior   : @b<aliased in out> Atomic_Type;
-                                         Desired : Atomic_Type) @b<return> Boolean
-     @b<with> Convention =@> Intrinsic;>
+@xcode<   @b<function> Atomic_Compare_And_Exchange 
+     (Item    : @b<aliased in out> Atomic_Type;
+      Prior   : @b<aliased in out> Atomic_Type;
+      Desired : Atomic_Type) @b<return> Boolean
+      @b<with> Convention =@> Intrinsic;>
 
 @xcode<   @b<function> Is_Lock_Free (Item : @b<aliased> Atomic_Type) @b<return> Boolean
-     @b<with> Convention =@> Intrinsic;>
+      @b<with> Convention =@> Intrinsic;>
 
 @xcode<@b<end> System.Atomic_Operations.Exchange;>
 
@@ -1009,7 +1010,8 @@
 >
 >    A := A + 1;
 >
-> is a race condition (as the read and write are atomic, but not the entire update). Ada doesn't have atomic updates in any form.
+> is a race condition (as the read and write are atomic, but not the entire 
+> update). Ada doesn't have atomic updates in any form.
 
 The x86 family’s LOCK prefix can be applied to increment instructions, as well
 as compare and swap, for just such a common case.  It “would be nice” to have
@@ -3713,5 +3715,28 @@
 [At least, presuming the original description was correct. It certainly can't 
 be the case that the third parameter isn't used at all, so the above makes 
 the most sense.]
+
+****************************************************************
+
+From Arnaud Charlet's RM review:
+
+C.6.2 (7/5)
+
+The PDF doesn't read nicely (notice the extra line break):
+
+  function Atomic_Compare_And_Exchange (Item : aliased in out Atomic_Type;
+                                        Prior : aliased in out Atomic_Type;
+                                        Desired : Atomic_Type) return Boolean
+    with Convention => Intrinsic;
+
+Suggest instead:
+
+  function Atomic_Compare_And_Exchange
+    (Item    : aliased in out Atomic_Type;
+     Prior   : aliased in out Atomic_Type;
+     Desired : Atomic_Type) return Boolean
+     with Convention => Intrinsic;
+
+[This was treated as an editorial review correction - Editor.]
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent