An Interesting Lock-free Queue - Part 2 of N
Play An Interesting Lock-free Queue - Part 2 of N
This is the long awaited continuation of a previous CppCon talk ("Lock-free by Example") on an "interesting" lock-free queue. ("interesting"? Well, "multi-producer, multi-consumer, growing, shrinking, mostly contiguous, lock-free circular queue" is a bit long. Maybe "complicated" is a better word.) Attendance at the previous talk is completely NOT required. This time we will not just review where we left off, but attempt to "prove" that what we did is actually correct, and thus discuss how to prove correctness of lock-free algorithms, and discuss provability vs testing. And then, with the first steps proven (or disproven! - and hopefully corrected!), we can continue to expand the features of the queue, and tackle the new challenges that arise. Also, this is secretly a talk to convince you not to do lock-free programming. Shhh...