All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Once::try_call_once
caused by an Err(_)
resultSend
/Sync
bounds for Mutex
guardsSend
/Sync
bounds for RwLock
guardsFairMutex
, a new mutex implementation that reduces writer starvation.RwLock
that could be triggered via a reader overflowSend
/Sync
bound requirements to make the crate more flexibleRwLock
on reader overflowSend
/Sync
bounds for SpinMutex
and TicketMutex
(doesn't affect Mutex
itself)Default
for Once
Once::try_call_once
Once::call_once
to incorrectly failOnce
performance by reducing the memory footprint of internal state to one byteOnce
by relaxing ordering guarantees and removing redundant checksOnce
for better ergonomicslock_api
featureOnce::get_unchecked
RelaxStrategy
trait with type parameter on all locks to support switching between relax strategieslock_api1
feature is now named lock_api
Once
leaking the inner value upon dropOnce::initialized
Once::get_mut
Once::try_into_inner
Once::poll
RwLock
, Mutex
and Once
now implement From<T>
Lazy
type for lazy initializationTicketMutex
, an alternative mutex implementationstd
feature flag to enable thread yielding instead of spinningMutex::is_locked
/SpinMutex::is_locked
/TicketMutex::is_locked
Barrier
Once::wait
now spins even if initialization has not yet startedGuard::leak
is now an associated function instead of a methodSpinMutex
by relaxing unnecessarily conservative ordering requirementsSend
/Sync
bounds for lock guardslock_api
compatibilityGuard::leak
methodsRwLock::reader_count
and RwLock::writer_count
Display
implementation for guard typesDebug
impls of lock guards just show the inner type like std