~/talk

Why You Should Use Software Transactional Memory

Talkat LambdaConf 2019 · 2019-06-05..06-07· [haskell, concurrency]
slides:none on file

Argues that Haskell’s STM actually reduces concurrency footguns by giving concrete semantics: use atomically with TVars and newTVarIO to avoid nested transactions, rely on retry/check for blocking (no spinning), and compose higher structures. Workshop builds a TMVar from TVar that passes tests, wires a TBMQ with 8 workers and a 16-slot filler for a 1,000-item run, fixes a 100,000-replica race by coalescing atomically, and shows the runtime can surface deadlocks as a deadlock detected by runtime async exception.

AI-written summary · about

  1. 0:00Start
  2. 3:29Prerequisites
  3. 4:15Exercises Directory
  4. 6:35Material Mutable Variables
  5. 7:38Sharing Memory between Threads
  6. 15:40Exercise 2
  7. 31:55Was Stm First Invented in Haskell
  8. 38:18Race Condition
  9. 1:06:55Closable Channel
  10. 1:08:56Exercise 7
  11. 1:20:23Deadlocks
  12. 1:23:46Asynchronous Exceptions
  13. 1:24:36Global Variables
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.