~/talk

“The C++ Execution Model”

Talkat CppCon 2018 · 2018-09-23..09-28· [concurrency]
slides:none on file

C++ defines an abstract machine of threads evaluating code in a flat storage space, not modeling caches or NUMA; memory_order_consume is ignored here. Rules: sequencing and indeterminate/unsequenced evaluation (function arguments become indeterminately sequenced in C++17), and the synchronizes with → happens before composition for cross-thread visibility. Forward-progress guarantees (concurrent, parallel, weak) drive deadlock behavior; practical examples show relaxed atomics causing UB, and a thread-pool join needs boost blocking to avoid starvation.

AI-written summary · about

  1. 0:00Introduction to C++ Execution Model
  2. 1:50C++ Abstract Machine Basics
  3. 4:45Storage Model and Objects
  4. 7:20Threads and Execution
  5. 8:23Evaluating Expressions in C++
  6. 11:20Side Effects vs Value Computations
  7. 13:14Sequence Before Relation
  8. 14:40Indeterminately and Unsequenced Relations
  9. 15:50Interleaving Execution Steps
  10. 18:35Function Evaluation Rules
  11. 20:00Operator Evaluation Order
  12. 23:45Synchronizes With Relation
  13. 27:17Happens Before Relation
  14. 31:39Forward Progress in C++
  15. 33:51Blocking and Forward Progress
  16. 36:23Forward Progress Guarantees
  17. 45:26Key Takeaways from the Talk
  18. 46:09Q&A Session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.