J3/15-135r1 To: J3 From: John Reid & Bill Long Subject: Clause 5.8 edits to N2040 Date: 2015 February 25 Discussion ---------- In the recent ballot (see N2045) Malcolm Cohen wrote "(b) The TS has merely scratched the surface of the semantics that are being specified for stalled image handling; much more work needs to be done to clarify what is supposed to happen (e.g. which variables become undefined, etc.). Even for failed images some additional work appears to be needed..." An edit here addresses the issue for failed images. In the same ballot, Robert Corbett pointed out that if an image stalls while executing a CRITICAL construct, other images should be permitted to execute the construct. The concept of stalling has been removed, see J3/15-147, but the problem occurs for a failed image. Edits addresses this and similar problems for locks and events. Edits to N2040: --------------- [14:12+] Add "When an image fails during the execution of a segment, any data object that might be defined or undefined by execution of a statement of the segment other than an invocation of an atomic subroutine becomes undefined. If an image fails during the execution of a CRITICAL construct, the execution of the construct is regarded by other images as complete. If the in a LOCK statement was locked by a failed image and was not unlocked by that image, it is regarded as unlocked." [18:24+] Add "A failed image might cause an error condition for an EVENT WAIT statement. NOTE An unreasonably long wait on an EVENT WAIT statement in the presence of failed images may be because it was intended that the event be posted by an image that has failed." [35:6-7, modified by 15-147] Change "three" (was "five") to "four" and change "third paragraph" to "third and fourth paragraphs" twice. [37:3] Before "In para 3" add "in para 2, line 1, at the end of the sentence, add "or the executing image fails". [38:9+] Add '{in 8.5.6 LOCK and UNLOCK statements: in para 1, change "image and" to "image, that image has not failed, and the lock variable"; in para 4, add new second sentence "Failure of the image that locked a lock variable before it has unlocked the variable causes the variable to become unlocked."}'