1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8# Unreleased 9 10### Added 11 12### Changed 13 14### Fixed 15 16# [0.9.2] - 2021-07-09 17 18### Changed 19 20- Improved `Once` performance by reducing the memory footprint of internal state to one byte 21 22### Fixed 23 24- Improved performance of `Once` by relaxing ordering guarantees and removing redundant checks 25 26# [0.9.1] - 2021-06-21 27 28### Added 29 30- Default type parameter on `Once` for better ergonomics 31 32# [0.9.0] - 2021-03-18 33 34### Changed 35 36- Placed all major API features behind feature flags 37 38### Fixed 39 40- A compilation bug with the `lock_api` feature 41 42# [0.8.0] - 2021-03-15 43 44### Added 45 46- `Once::get_unchecked` 47- `RelaxStrategy` trait with type parameter on all locks to support switching between relax strategies 48 49### Changed 50 51- `lock_api1` feature is now named `lock_api` 52 53# [0.7.1] - 2021-01-12 54 55### Fixed 56 57- Prevented `Once` leaking the inner value upon drop 58 59# [0.7.0] - 2020-10-18 60 61### Added 62 63- `Once::initialized` 64- `Once::get_mut` 65- `Once::try_into_inner` 66- `Once::poll` 67- `RwLock`, `Mutex` and `Once` now implement `From<T>` 68- `Lazy` type for lazy initialization 69- `TicketMutex`, an alternative mutex implementation 70- `std` feature flag to enable thread yielding instead of spinning 71- `Mutex::is_locked`/`SpinMutex::is_locked`/`TicketMutex::is_locked` 72- `Barrier` 73 74### Changed 75 76- `Once::wait` now spins even if initialization has not yet started 77- `Guard::leak` is now an associated function instead of a method 78- Improved the performance of `SpinMutex` by relaxing unnecessarily conservative 79 ordering requirements 80 81# [0.6.0] - 2020-10-08 82 83### Added 84 85- More dynamic `Send`/`Sync` bounds for lock guards 86- `lock_api` compatibility 87- `Guard::leak` methods 88- `RwLock::reader_count` and `RwLock::writer_count` 89- `Display` implementation for guard types 90 91### Changed 92 93- Made `Debug` impls of lock guards just show the inner type like `std` 94