References
The C++ abstract machine is a portable abstraction of your operating system, kernel and hardware.
The abstract machine is the intermediary between your C++ program and the system that it is run on.
Synchronizes with
int value;
std::atomic<bool> ready;
void thread1() {
value = 2; // non-atomic store
ready = true;
}
void thread2() {
if (ready) { // synchronizes-with relationship
assert(value == 2); // never fails
}
}
C++ abstract machine / execution model
* https://www.youtube.com/watch?v=FJIn1YhPJJc