• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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