~/talk

A Graded Monad for Deadlock-Free Concurrency (Functional Pearl)

Talkat Haskell 2020 · 2020-08-27..08-28· [functional-programming, concurrency]
links:none on file
links:none on file
slides:none on file

Claims a type-oriented framework that guarantees deadlock freedom by encoding a total lock order in types and implements it as a graded monad over IO. Lock sets appear as type-level sorted lock lists and a type-level merge plus a partial-cons constraint enforce acquisition-before-release order. Implementation maps lists of unit MVars to IO, provides syncX operations and parallel composition, rejects the classic deadlocking dining-philosophers encoding, and the grading algebra yields types that can be inferred in polynomial time.

AI-written summary · about

  1. 0:00Intro
  2. 0:34Concurrent programming in Haskell
  3. 1:18MVar synchronisation
  4. 2:24Software transactional memory
  5. 3:18Motivation
  6. 4:13Talk overview
  7. 6:24Graded monads in Haskell
  8. 8:02Framework (cont'd)
  9. 9:24Usage examples
  10. 11:33Dining philosophers (implemented)
  11. 13:04Dining philosophers (shorter)
  12. 13:54Lock algebra
  13. 15:34Underlying Sync implementation
  14. 17:28Implementing synchronization
  15. 18:24Implementing parallelism
  16. 19:24In the paper: memory regions
  17. 20:40In the paper handling recursion
  18. 21:52Further work
  19. 23:31Summary
~/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.