CppCon 2016 has ended
Back To Schedule
Wednesday, September 21 • 3:15pm - 4:15pm
Using weakly ordered C++ atomics correctly

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Most programmers should usually avoid C++ atomics altogether and use mutexes instead. If that's not possible, perhaps because the code must be usable in interrupt handlers, I recommend that you consider limiting yourself to sequentially consistent atomics, which provide a more subtle, but still reasonably unsurprising programming model. This talk will target those who choose to ignore both of those pieces of advice, for either good or bad reasons.

I will start by trying to distinguish the good and bad reasons for using weakly ordered atomics, and then follow with guidelines for using them correctly.

I will discuss why it is often incorrect to think of atomics in terms of fence-based implementations, and about some common errors I've seen, including some really convincing looking, but still incorrect, code. I will also try to go through some of the common idioms for which weakly ordered atomics are actually safe. In my experience, the latter are also reasonably common, but not always easy to distinguish from the subtly erroneous examples.

avatar for Hans Boehm

Hans Boehm

Hans is a software engineer at Google, where he has been since March 2014. He now works mostly on concurrent programming issues, both generally, and focussed on Android. Hans is an ACM Fellow, and a past Chair of ACM SIGPLAN (2001-2003). Until late 2017 he chaired the ISO C++ Concurrency... Read More →

Wednesday September 21, 2016 3:15pm - 4:15pm PDT
Bowie Hall (1st Floor Hall) Meydenbauer Center