| 19.4 An acquire operation E in a thread TE synchronizes with a release operation F if another thread TF if E reads the value that F has written. | |
| 19.5 If F synchronizes with E, all effects X that happened before F must be visible at all evaluations G that happen after E. | |
| 19.6 We only can conclude that one evaluation happened before another if we have a sequenced chain of synchronizations that links them. | |
| 19.7 If an evaluation F happened before E, all effects that are known to have happened before F are also known to have happened before E. | |
| 19.8 Critical sections that are protected by the same mutex occur sequentially. | |
| 19.9 In a critical section that is protected by the mutex mut, all effects of previous critical sections protected by mut are visible. | |
| 19.10 cnd_wait and cnd_timedwait have release-acquire semantics for the mutex. | |
| 19.11 Calls to cnd_signal and cnd_broadcast synchronize via the mutex. | |
| 19.12 Calls to cnd_signal and cnd_broadcast should occur inside a critical section that is protected by the same mutex as the waiters. | |
| 19.13 All atomic operations with sequential consistency occur in one global modification order, regardless of the atomic object they are applied to. | |
| 19.14 All operators and functional interfaces on atomics that don’t specify otherwise have sequential consistency. | |
| 19.15 Synchronizing functional interfaces for atomic objects have a form with _explicit appended that allows us to specify their consistency model. |