Why release sequence can only contain read-modify-write but not pure write

89 views Asked by At

After a release operation A is performed on an atomic object M, the longest continuous subsequence of the modification order of M that consists of:

  1. Writes performed by the same thread that performed A. (until C++20)
  2. Atomic read-modify-write operations made to M by any thread. Is known as release sequence headed by A.
  • Q1: Why do we need the concept of release sequence?

    A1: See What does "release sequence" mean?

  • Q2: Is the first item removed in C++20?

  • Q3: Why read-modify-write operations qualify in a release sequence but pure write operations don't?

    What's special about relaxed RMWs that lets them form a chain without being an acquire load and release store? Either in computer-architecture terms, or in C++ language formalism? Or to put it another way, how can hardware support release-sequence semantics for atomic RMWs but have pure stores that break connections?

0

There are 0 answers