An open API service indexing awesome lists of open source software.

https://github.com/aleph-alpha/lock-hierarchy-rs

Validate lock hierarchies in Rust code
https://github.com/aleph-alpha/lock-hierarchy-rs

Last synced: 9 months ago
JSON representation

Validate lock hierarchies in Rust code

Awesome Lists containing this project

README

          

# Lock hierarchy

This Rust crate offers debug assertions for violations of lock hierarchies. No runtime overhead or protection occurs for release builds.

## Usage

```rust
use lock_hierarchy::Mutex;

let mutex_a = Mutex::new(()); // Level 0
let mutex_b = Mutex::with_level((), 0); // also level 0
// Fine, first mutex in thread
let _guard_a = mutex_a.lock().unwrap();
// Must panic, lock hierarchy violation
let _guard_b = mutex_b.lock().unwrap();
```

```rust
use lock_hierarchy::Mutex;

let mutex_a = Mutex::with_level((), 1); // Level 1
let mutex_b = Mutex::new(()); // level 0
// Fine, first mutex in thread
let _guard_a = mutex_a.lock().unwrap();
// Fine: 0 is lower level than 1
let _guard_b = mutex_b.lock().unwrap();
```