The bridge analogy for deadlocks landed perfectly — I hit exactly that pattern debugging a producer-consumer pipeline where two threads held mutexes in opposite order. One thing worth noting alongside the four deadlock conditions: in containerized environments, cgroup memory limits add a layer where the OOM killer breaks deadlocks violently before any recovery algorithm gets a chance to run.