Lock-Free Data Structures using STMs in Haskell Anthony Discolo, Tim Harris, Simon Marlow, Simon Peyton Jones, and Satnam Singh. Submitted to FLOPS’06.
An interesting paper demonstrating the use of STM (and it’s superiority
over explicit locking) in Haskell. The authors present two Haskell
implementations of the ArrayBlockingQueue
class from Java: one using STM
and the other explicit locking. Not only did the version using STM
outperformed the explicit locking version consistently in the multi-CPU
benchmarks, but the STM code is much simpler.