Some light reading on lock-free programming
Today is a holiday in the United States, so I’m going to celebrate by referring you to other things to read. I’m going to start with a presentation by Bruce Dawson at GDC 2009, which is basically multiple instances of the question “Is this code correct?”, and the answer is always “No!” Although the title of the talk is Lockless Programming in Games, the information is relevant to pretty much everybody. I can’t find a recording of the presentation, but you can download the PowerPoint slides or view them in your browser. But I recommend downloading the PowerPoint slides and reading the notes, because the notes explain the slides. [Update: Ah, you can see the notes in the browser by clicking the Notes button at the bottom. So download whichever you prefer. Just make sure you read the notes.] A more game-focused presentation by Bruce Dawson has the more general title Coding for Multiple Cores. Download the PowerPoint sides or view them in your browser. Then there is the MSDN white paper that he authored, Lockless Programming Considerations for Xbox 360 and Microsoft Windows. Finally, there’s Herb Sutter’s two-part talk atomic<> Weapons, part 1 and part 2.
That should keep you busy for a while.