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 sent or
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>
].