To: J3 Members J3/16-131 From: Van Snyder Subject: "Atomic actions" are not defined in 13.5 or 2.3.5. Reference: 16-007 Date: 2016 January 25 1. Introduction =============== 13.1p3 says the semantics of atomic actions are described in 13.5. 13.5 only defines the effect of executing atomic subroutines. In fact, atomic actions other than those performed by atomic subroutines aren't described anywhere. This leaves EVENT POST, EVENT WAIT, and EVENT_QUERY undefined. 13.5p2 claims that the sequence of atomic actions within ordered segments is specified in 2.3.5. 2.3.5 does not contain the words "atomic" or "atomically". Atomic actions ought to be described in Clause 6 -- or /HPC can decide that a different subclause is more appropriate. 13.5 is not the correct place. Once a place is chosen, move the processor-dependency listing at [510:38] and revise its cross reference. 2. Edits ======== [4:6+ 1.3.10+] After subclause 1.3.10 insert a definition: "atomic action action that is performed completely without interference (6.5a)." [129:14- 6.6-] Before subclause 6.6 insert a new subclause: "6.5a Atomic Actions The effect of an atomic action is as if it is performed completely before the beginning of execution of any other atomic action that affects the same object or objects. The sequence of actions within ordered segments, as described in 2.3.5, is not affected by whether actions are atomic. If atomic actions are begun effectively simultaneously by different images or by different executions of a DO CONCURRENT construct (8.1.6), which execution is performed first is processor dependent. Atomic actions shall make asynchronous progress. If a variable X on image P is defined by an atomic action on image Q, image R repeatedly references X[P] by an atomic action in an unordered segment, and no other image defies X[P] in an unordered segment, image R shall eventually receive the value defined by image Q, even if none of the images P, Q, or R execute an image control statement until after the definition of X[P] by image Q and the reception of that value by image R." [194:32 8.5.2p3] Insert "(13.5)" after "atomic subroutine". [199:7 8.5.6p2] Insert "(6.5a)" after "atomically". [200:14 8.5.7p2(3)] Insert "(6.5a)" after "atomically". [325:12 13.1p3] Insert "(6.5a)" after "atomic action". Replace "actions" with "subroutines". [328:15 13.5p1] Insert "(6.5a)" after "atomically". [328:17-20 13.5p2] Delete the first two sentences, viz. "For any two ... processor dependent ... 2.3.5." [328:23-329:3 13.5p3] Delete 13.5p3, viz. "Atomic operations shall make asynchronous progress...." [361:17 13.8.67p3] Insert "(6.5a)" after "atomically". [417:5 13.8.2.2p1] Insert "(13.5)" after "atomic operations". [417:8 13.8.2.3p1] Insert "(13.5)" after "atomic operations". [508:6+] Add a list item: "o which atomic action is executed first if two atomic actions are begun effectively simultaneously (6.5a);"