18 releases
0.1.17 | Dec 24, 2022 |
---|---|
0.1.16 | Dec 24, 2022 |
#1270 in Concurrency
103 downloads per month
Used in ceiling
13KB
232 lines
sero
Sero is a simple and lightweight library for maintaining a shared store of locks.
Usage
use sero::LockStore;
let store = LockStore::new();
// to lock asynchronously use
let guard = store.lock("key").await;
// to lock synchronously use
let guard = store.lock("key").wait();
// NOTE: synchronously locking will "park" the current thread until the lock is acquired
// locks are released when the LockGuard is dropped
// either with the drop function or when they go out of scope
drop(guard);
lib.rs
:
Sero is a simple and lightweight library for maintaining a shared store of locks.
Usage
use sero::LockStore;
let store = LockStore::new();
// to lock asynchronously use
let guard = store.lock("key").await;
// to lock synchronously use
let guard = store.lock("key").wait();
// NOTE: synchronously locking will "park" the current thread until the lock is acquired
// locks are released when the LockGuard is dropped
// either with the drop function or when they go out of scope
drop(guard);
Dependencies
~1–6MB
~22K SLoC