lock_cell

Crates.iolock_cell
lib.rslock_cell
version0.6.0
sourcesrc
created_at2023-06-24 21:57:23.719775
updated_at2023-07-08 07:19:12.172338
descriptionA custom locking cell type written in Rust
homepage
repositoryhttps://github.com/burtonageo/lock_cell
max_upload_size
id899138
size30,684
George Burton (burtonageo)

documentation

README

lock_cell

This crate provides the LockCell<T> and other supportings types.

A LockCell is a cell type which provides dynamic mutation using interior mutability. It is similar to RefCell<T>, except that it only allows a single borrow type (a lock). Locking a LockCell allows mutating its contents freely.

A LockCell can only be used in a single threaded context - it cannot be shared across different threads. Generally, a LockCell will be stored in a Rc<T> so that it can be shared.

Whether you use a LockCell or a RefCell depends on the structure and behavior of your program. Generally, if you have a lot of writers and readers, using a LockCell may be better, as it ensures that writers are less likely to be starved.

The Sync equivalent of a LockCell is Mutex<T>.

Features

  • The enable_std feature enables the standard library. This provides an implementation of std::error::Error for the TryLockError type. This feature is enabled by default.

  • The debug_lockcell feature tracks the location of each lock() call in the LockCell, allowing the developer to compare the first lock location in their file to the panicking lock location, aiding in debugging.

Commit count: 49

cargo fmt