• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## parking_lot 0.12.3 (2024-05-24)
2
3- Export types provided by arc_lock feature (#442)
4
5## parking_lot 0.12.2, parking_lot_core 0.9.10, lock_api 0.4.12 (2024-04-15)
6
7- Fixed panic when calling `with_upgraded` twice on a `ArcRwLockUpgradableReadGuard` (#431)
8- Fixed `RwLockUpgradeableReadGuard::with_upgraded`
9- Added lock_api::{Mutex, ReentrantMutex, RwLock}::from_raw methods (#429)
10- Added Apple visionOS support (#433)
11
12## parking_lot_core 0.9.9, lock_api 0.4.11 (2023-10-18)
13
14- Fixed `RwLockUpgradeableReadGuard::with_upgraded`. (#393)
15- Fixed `ReentrantMutex::bump` lock count. (#390)
16- Added methods to unsafely create a lock guard out of thin air. (#403)
17- Added support for Apple tvOS. (#405)
18
19## parking_lot_core 0.9.8, lock_api 0.4.10 (2023-06-05)
20
21- Mark guards with `#[clippy::has_significant_drop]` (#369, #371)
22- Removed windows-sys dependency (#374, #378)
23- Add `atomic_usize` default feature to support platforms without atomics. (#380)
24- Add with_upgraded API to upgradable read locks (#386)
25- Make RwLock guards Sync again (#370)
26
27## parking_lot_core 0.9.7 (2023-02-01)
28
29- Update windows-sys dependency to 0.45. (#368)
30
31## parking_lot_core 0.9.6 (2023-01-11)
32
33- Add support for watchOS. (#367)
34
35## parking_lot_core 0.9.5 (2022-11-29)
36
37- Update use of `libc::timespec` to prepare for future libc version (#363)
38
39## parking_lot_core 0.9.4 (2022-10-18)
40
41- Bump windows-sys dependency to 0.42. (#356)
42
43## lock_api 0.4.9 (2022-09-20)
44
45- Fixed `ReentrantMutexGuard::try_map` signature (#355)
46
47## lock_api 0.4.8 (2022-08-28)
48
49- Fixed unsound `Sync`/`Send` impls for `ArcMutexGuard`. (#349)
50- Added `ArcMutexGuard::into_arc`. (#350)
51
52## parking_lot 0.12.1 (2022-05-31)
53
54- Fixed incorrect memory ordering in `RwLock`. (#344)
55- Added `Condvar::wait_while` convenience methods (#343)
56
57## parking_lot_core 0.9.3 (2022-04-30)
58
59- Bump windows-sys dependency to 0.36. (#339)
60
61## parking_lot_core 0.9.2, lock_api 0.4.7 (2022-03-25)
62
63- Enable const new() on lock types on stable. (#325)
64- Added `MutexGuard::leak` function. (#333)
65- Bump windows-sys dependency to 0.34. (#331)
66- Bump petgraph dependency to 0.6. (#326)
67- Don't use pthread attributes on the espidf platform. (#319)
68
69## parking_lot_core 0.9.1 (2022-02-06)
70
71- Bump windows-sys dependency to 0.32. (#316)
72
73## parking_lot 0.12.0, parking_lot_core 0.9.0, lock_api 0.4.6 (2022-01-28)
74
75- The MSRV is bumped to 1.49.0.
76- Disabled eventual fairness on wasm32-unknown-unknown. (#302)
77- Added a rwlock method to report if lock is held exclusively. (#303)
78- Use new `asm!` macro. (#304)
79- Use windows-rs instead of winapi for faster builds. (#311)
80- Moved hardware lock elision support to a separate Cargo feature. (#313)
81- Removed used of deprecated `spin_loop_hint`. (#314)
82
83## parking_lot 0.11.2, parking_lot_core 0.8.4, lock_api 0.4.5 (2021-08-28)
84
85- Fixed incorrect memory orderings on `RwLock` and `WordLock`. (#294, #292)
86- Added `Arc`-based lock guards. (#291)
87- Added workaround for TSan's lack of support for `fence`. (#292)
88
89## lock_api 0.4.4 (2021-05-01)
90
91- Update for latest nightly. (#281)
92
93## lock_api 0.4.3 (2021-04-03)
94
95- Added `[Raw]ReentrantMutex::is_owned`. (#280)
96
97## parking_lot_core 0.8.3 (2021-02-12)
98
99- Updated smallvec to 1.6. (#276)
100
101## parking_lot_core 0.8.2 (2020-12-21)
102
103- Fixed assertion failure on OpenBSD. (#270)
104
105## parking_lot_core 0.8.1 (2020-12-04)
106
107- Removed deprecated CloudABI support. (#263)
108- Fixed build on wasm32-unknown-unknown. (#265)
109- Relaxed dependency on `smallvec`. (#266)
110
111## parking_lot 0.11.1, lock_api 0.4.2 (2020-11-18)
112
113- Fix bounds on Send and Sync impls for lock guards. (#262)
114- Fix incorrect memory ordering in `RwLock`. (#260)
115
116## lock_api 0.4.1 (2020-07-06)
117
118- Add `data_ptr` method to lock types to allow unsafely accessing the inner data
119  without a guard. (#247)
120
121## parking_lot 0.11.0, parking_lot_core 0.8.0, lock_api 0.4.0 (2020-06-23)
122
123- Add `is_locked` method to mutex types. (#235)
124- Make `RawReentrantMutex` public. (#233)
125- Allow lock guard to be sent to another thread with the `send_guard` feature. (#240)
126- Use `Instant` type from the `instant` crate on wasm32-unknown-unknown. (#231)
127- Remove deprecated and unsound `MappedRwLockWriteGuard::downgrade`. (#244)
128- Most methods on the `Raw*` traits have been made unsafe since they assume
129  the current thread holds the lock. (#243)
130
131## parking_lot_core 0.7.2 (2020-04-21)
132
133- Add support for `wasm32-unknown-unknown` under the "nightly" feature. (#226)
134
135## parking_lot 0.10.2 (2020-04-10)
136
137- Update minimum version of `lock_api`.
138
139## parking_lot 0.10.1, parking_lot_core 0.7.1, lock_api 0.3.4 (2020-04-10)
140
141- Add methods to construct `Mutex`, `RwLock`, etc in a `const` context. (#217)
142- Add `FairMutex` which always uses fair unlocking. (#204)
143- Fixed panic with deadlock detection on macOS. (#203)
144- Fixed incorrect synchronization in `create_hashtable`. (#210)
145- Use `llvm_asm!` instead of the deprecated `asm!`. (#223)
146
147## lock_api 0.3.3 (2020-01-04)
148
149- Deprecate unsound `MappedRwLockWriteGuard::downgrade` (#198)
150
151## parking_lot 0.10.0, parking_lot_core 0.7.0, lock_api 0.3.2 (2019-11-25)
152
153- Upgrade smallvec dependency to 1.0 in parking_lot_core.
154- Replace all usage of `mem::uninitialized` with `mem::MaybeUninit`.
155- The minimum required Rust version is bumped to 1.36. Because of the above two changes.
156- Make methods on `WaitTimeoutResult` and `OnceState` take `self` by value instead of reference.
157
158## parking_lot_core 0.6.2 (2019-07-22)
159
160- Fixed compile error on Windows with old cfg_if version. (#164)
161
162## parking_lot_core 0.6.1 (2019-07-17)
163
164- Fixed Android build. (#163)
165
166## parking_lot 0.9.0, parking_lot_core 0.6.0, lock_api 0.3.1 (2019-07-14)
167
168- Re-export lock_api (0.3.1) from parking_lot (#150)
169- Removed (non-dev) dependency on rand crate for fairness mechanism, by
170  including a simple xorshift PRNG in core (#144)
171- Android now uses the futex-based ThreadParker. (#140)
172- Fixed CloudABI ThreadParker. (#140)
173- Fix race condition in lock_api::ReentrantMutex (da16c2c7)
174
175## lock_api 0.3.0 (2019-07-03, _yanked_)
176
177- Use NonZeroUsize in GetThreadId::nonzero_thread_id (#148)
178- Debug assert lock_count in ReentrantMutex (#148)
179- Tag as `unsafe` and document some internal methods (#148)
180- This release was _yanked_ due to a regression in ReentrantMutex (da16c2c7)
181
182## parking_lot 0.8.1 (2019-07-03, _yanked_)
183
184- Re-export lock_api (0.3.0) from parking_lot (#150)
185- This release was _yanked_ from crates.io due to unexpected breakage (#156)
186
187## parking_lot 0.8.0, parking_lot_core 0.5.0, lock_api 0.2.0 (2019-05-04)
188
189- Fix race conditions in deadlock detection.
190- Support for more platforms by adding ThreadParker implementations for
191  Wasm, Redox, SGX and CloudABI.
192- Drop support for older Rust. parking_lot now requires 1.31 and is a
193  Rust 2018 edition crate (#122).
194- Disable the owning_ref feature by default.
195- Fix was_last_thread value in the timeout callback of park() (#129).
196- Support single byte Mutex/Once on stable Rust when compiler is at least
197  version 1.34.
198- Make Condvar::new and Once::new const fns on stable Rust and remove
199  ONCE_INIT (#134).
200- Add optional Serde support (#135).
201
202## parking_lot 0.7.1 (2019-01-01)
203
204- Fixed potential deadlock when upgrading a RwLock.
205- Fixed overflow panic on very long timeouts (#111).
206
207## parking_lot 0.7.0, parking_lot_core 0.4.0 (2018-11-26)
208
209- Return if or how many threads were notified from `Condvar::notify_*`
210
211## parking_lot 0.6.3 (2018-07-18)
212
213- Export `RawMutex`, `RawRwLock` and `RawThreadId`.
214
215## parking_lot 0.6.2 (2018-06-18)
216
217- Enable `lock_api/nightly` feature from `parking_lot/nightly` (#79)
218
219## parking_lot 0.6.1 (2018-06-08)
220
221Added missing typedefs for mapped lock guards:
222
223- `MappedMutexGuard`
224- `MappedReentrantMutexGuard`
225- `MappedRwLockReadGuard`
226- `MappedRwLockWriteGuard`
227
228## parking_lot 0.6.0 (2018-06-08)
229
230This release moves most of the code for type-safe `Mutex` and `RwLock` types
231into a separate crate called `lock_api`. This new crate is compatible with
232`no_std` and provides `Mutex` and `RwLock` type-safe wrapper types from a raw
233mutex type which implements the `RawMutex` or `RawRwLock` trait. The API
234provided by the wrapper types can be extended by implementing more traits on
235the raw mutex type which provide more functionality (e.g. `RawMutexTimed`). See
236the crate documentation for more details.
237
238There are also several major changes:
239
240- The minimum required Rust version is bumped to 1.26.
241- All methods on `MutexGuard` (and other guard types) are no longer inherent
242  methods and must be called as `MutexGuard::method(self)`. This avoids
243  conflicts with methods from the inner type.
244- `MutexGuard` (and other guard types) add the `unlocked` method which
245  temporarily unlocks a mutex, runs the given closure, and then re-locks the
246   mutex.
247- `MutexGuard` (and other guard types) add the `bump` method which gives a
248  chance for other threads to acquire the mutex by temporarily unlocking it and
249  re-locking it. However this is optimized for the common case where there are
250  no threads waiting on the lock, in which case no unlocking is performed.
251- `MutexGuard` (and other guard types) add the `map` method which returns a
252  `MappedMutexGuard` which holds only a subset of the original locked type. The
253  `MappedMutexGuard` type is identical to `MutexGuard` except that it does not
254  support the `unlocked` and `bump` methods, and can't be used with `CondVar`.
255