#keyed #reader-writer #locks #rwlock #async #key #tokio

key-rwlock

Simple library for keyed asynchronous reader-writer locks

3 releases

0.1.2 Sep 20, 2023
0.1.1 May 31, 2023
0.1.0 Apr 21, 2023

#1050 in Concurrency

Download history 39/week @ 2024-10-23 88/week @ 2024-10-30 78/week @ 2024-11-06 30/week @ 2024-11-13 88/week @ 2024-11-20 66/week @ 2024-11-27 46/week @ 2024-12-04 54/week @ 2024-12-11 43/week @ 2024-12-18 32/week @ 2024-12-25 37/week @ 2025-01-01 56/week @ 2025-01-08 29/week @ 2025-01-15 20/week @ 2025-01-22 34/week @ 2025-01-29 38/week @ 2025-02-05

128 downloads per month

MIT license

8KB
113 lines

check test codecov Version dependency status

key-rwlock

Simple library for keyed asynchronous reader-writer locks.

Example

use key_rwlock::KeyRwLock;

#[tokio::main]
async fn main() {
    let lock = KeyRwLock::new();

    let _foo = lock.write("foo").await;
    let _bar = lock.read("bar").await;

    assert!(lock.try_read("foo").await.is_err());
    assert!(lock.try_write("foo").await.is_err());

    assert!(lock.try_read("bar").await.is_ok());
    assert!(lock.try_write("bar").await.is_err());
}

Dependencies

~2–7.5MB
~47K SLoC