Skip to content

Livelock

Category: Hazards · Status: stub · Lessons: chapter 03, When locks go wrong (planned)

One line: Tasks keep changing state in response to each other — backing off, retrying, stepping aside — without any of them getting work done.

How it connects

flowchart LR
  n_deadlock["Deadlock"]
  n_livelock["Livelock"]
  n_liveness_failure["Liveness failure"]
  n_deadlock ---|vs| n_livelock
  n_livelock -->|is a| n_liveness_failure
  classDef center stroke-width:3px
  class n_livelock center
  classDef outside stroke-dasharray: 4 3
  class n_deadlock,n_liveness_failure outside

Where to read more