diff --git a/README.md b/README.md index 2c1a703..bbfffde 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,27 @@ cargo build --workspace cargo test --workspace ``` +## Inspiration + +Deathproof is directly inspired by: + +- Coffman, Elphick, and Shoshani's classic + ["System Deadlocks"](https://people.cs.umass.edu/~mcorner/courses/691J/papers/TS/coffman_deadlocks/coffman_deadlocks.pdf) + (1971) -- the four necessary and sufficient conditions for deadlock. + Break any one and deadlock is impossible. +- [`happylock`](https://crates.io/crates/happylock) -- capability-token + locking with `LockCollection` sorted acquisition and `Lockable` trait. + Deathproof borrows the core design (capability token, sorted lock sets, + `Lockable` trait with tuple impls) but replaces address-based ordering + with a stable monotonic `LockId` counter, removes the `std` requirement, + and adds GDP-style compile-time proofs. +- [`lock_tree`](https://crates.io/crates/lock_tree) (Google Fuchsia) -- + compile-time DAG of lock levels enforced via `LockAfter` trait bounds. + Deathproof adopts the `LockAfter` trait concept for cross-category + ordering but applies it to coarse-grained categories rather than + per-instance levels, avoiding the same-level limitation and O(N^2) + per-instance compile cost. + ## License Licensed under either of