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 OnceOnce::try_call_onceOnce::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_uncheckedRelaxStrategy trait with type parameter on all locks to support switching between relax strategieslock_api1 feature is now named lock_apiOnce leaking the inner value upon dropOnce::initializedOnce::get_mutOnce::try_into_innerOnce::pollRwLock, 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_lockedBarrierOnce::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_countDisplay implementation for guard typesDebug impls of lock guards just show the inner type like std