Full name of submitter (unless configured in github; will be published with the issue): Jim X
[intro.races] p17 states
Two actions are potentially concurrent if
The execution of a program contains a data race if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, and neither happens before the other, except for the special case for signal handlers described below.
What do the atomic actions intend to mean here? Does it only refer to these operations defined for atomic<T>? Or does it refer to these operations that are semantically specified as atomic operations? For example, [thread.mutex.requirements.mutex.general] p4 states:
The implementation provides lock and unlock operations, as described below. For purposes of determining the existence of a data race, these behave as atomic operations ([intro.multithread]).
"behave as atomic operations" sounds like these operations are semantically specified as atomic operations. Furthermore, are the atomic operations referred to in [intro.races] p17 admit these operations, where the implementation defines them as atomic operations since their semantics are implementation-defined?
Suggested Resolution:
Full name of submitter (unless configured in github; will be published with the issue): Jim X
[intro.races] p17 states
What do the atomic actions intend to mean here? Does it only refer to these operations defined for
atomic<T>? Or does it refer to these operations that are semantically specified as atomic operations? For example, [thread.mutex.requirements.mutex.general] p4 states:"behave as atomic operations" sounds like these operations are semantically specified as atomic operations. Furthermore, are the atomic operations referred to in [intro.races] p17 admit these operations, where the implementation defines them as atomic operations since their semantics are implementation-defined?
Suggested Resolution: