/stm-course

Slides and exercises for an STM "course" series

STM slides & exercises

This repo contains slides and exercises from a talk series I gave on Software Transactional Memory at Monadic Party in June 2018.

Outline

I used my five hours at Monadic Party in the following way:

  1. Transactions of Actions (slides, video)
  2. Exercises 1 - 3 (link)
  3. Transactional LEGOs (slides, video)
  4. Exercises 4 - 6 (link)
  5. Operational Observations (slides, video)

The first part is intended to give an overview of the API, and talk about the problems that STM aims to solve. The exercises help you verify that you can actually use the API, which was presented.

The second part shows how to build your own abstractions out of the TVars that STM gives you. It also contains some notes on contention and fairness. I show how to build TMVars, TQueues, and discuss some high level notes about the datatypes in stm-containers.

Resources

If you want to learn more about concurrent Haskell (implementation or how to use it), I suggest the following reading material:

If you want to write concurrent Haskell code, the following packages might be useful (there are many more, but I've used these):