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.