To: J3 13-273 From: Reinhold Bader Subject: Simplifying events Date: 24 June 2013 References: N1930, N1967, N1971 Discussion: ~~~~~~~~~~~ In N1967, the LOCAL_EVENT_TYPE concept was introduced because a more efficient implementation of event synchronization is possible than with the more general EVENT_TYPE facility defined there. Subsequently, it was realized that this simplified event type is already sufficient to cover the most relevant envisaged usage patterns. Therefore, this paper proposes to replace the more general EVENT_TYPE by the semantics already specified for the LOCAL_EVENT_TYPE, and remove the latter from the draft. Reintegrating the more general nonlocal event type could be considered for a later revision, provided that user feedback indicates an actual need for this. Of the requirements in N1930, all but the last one (E4) is fulfilled. The requirements document will be correspondingly updated. The paper also includes a correction to C603 of the TS, which presently states the logical opposite of what is intended. Edits to N1967: ~~~~~~~~~~~~~~~ In section 3.2 delete "or LOCAL_EVENT_TYPE" In the heading of 6.2, delete "and LOCAL_EVENT_TYPE" Replace the first two paragraphs of 6.2 by "EVENT_TYPE is a derived type with private components. It is an extensible type with no type parameters. All components have default initialization. EVENT_TYPE is defined in the ISO_FORTRAN_ENV intrinsic module. A scalar variable of type EVENT_TYPE is an event variable. An event variable includes a count of the difference between the number of successful posts and successful waits for the event variable. The initial value of the event count of an event variable is zero. The processor shall support a maximum value of the event count of at least HUGE(0)." In C601, delete "or LOCAL_EVENT_TYPE", twice. In C603, delete "or LOCAL_EVENT_TYPE". Also, after "variable definition context", replace the comma by " except". Rephrase NOTE 6.1 to read "Event variables of type EVENT_TYPE are restricted so that EVENT_WAIT statements can only wait on a local event variable. This allows the efficient implementation of this concept." In section 6.3, C604, delete "or LOCAL_EVENT_TYPE". In section 6.4, C605, delete "of type LOCAL_EVENT_TYPE" Section 6.4, [14:6]: Replace "shall not change" by "do not change". In section 7.3.11, description of the EVENT argument of EVENT_QUERY, delete "or LOCAL_EVENT_TYPE" in the first sentence. At the end of 7.3.11, add "NOTE 7.1 Execution of EVENT_QUERY does not imply any synchronization." Edits to section 8.3 [25:32] Delete "or LOCAL_EVENT_TYPE". [30:12] Delete "and LOCAL_EVENT_TYPE".