• https://github.com/CppCon/CppCon2018/blob/master/Presentations/the_cpp_execution_model/the_cpp_execution_model__bryce_adelstein_lelbach__cppcon_2018.pdf
  • https://www.youtube.com/watch?v=FJIn1YhPJJc

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

deck

By technology