How I Learned to Stop Worrying and Love Juggling C++ Atomics

As most C++ programmers are aware, courtesy of Herb Sutter, programming lock-free data structures is akin to juggling razor blades. Reasoning about concurrent programs is already complex enough but modern CPU memory models are so complicated that they manage to make it even harder. The prevailing suggestion you often come across is to steer clear of lock-free programming entirely. Yet, there exists a shadowy realm where such recklessness is not just an option; it's a dire necessity.

Read more...
1 of 1