Traditional approach to multi-threaded programming, for which I have coined the nickname “deadlock-oriented programming”, suffers from a major flaw—it’s not composable. If you try to perform operations on multiple lockable objects, you run into the risk of deadlocks, livelocks, priority inversions, and other assorted plagues.
Software Transactional Memory, STM, promises to solve those problems once and for all. Under the covers it works like lock-free programming on steroids, but to the programmer, it is a no-brainer.
I will discuss general ideas behind STM as well as some concrete implementations.
Bartosz has his roots in theory (Ph.D. in theoretical particle physics) and his branches in programming practice (eight years at Microsoft and then his own little software firm). His current activities, outside of his company, include graduate study at the UW, partaking in the design of D, and (secretly) writing a book on Windows in D. He’s also the author of C++ in Action, Addison-Wesley, 2001.
Download the slides from the presentation.