]> git.proxmox.com Git - rustc.git/blob - vendor/parking_lot-0.10.2/CHANGELOG.md
New upstream version 1.47.0+dfsg1
[rustc.git] / vendor / parking_lot-0.10.2 / CHANGELOG.md
1 ## parking_lot 0.10.2 (2020-04-10)
2
3 - Update minimum version of `lock_api`.
4
5 ## parking_lot 0.10.1, parking_lot_core 0.7.1, lock_api 0.3.4 (2020-04-10)
6
7 - Add methods to construct `Mutex`, `RwLock`, etc in a `const` context. (#217)
8 - Add `FairMutex` which always uses fair unlocking. (#204)
9 - Fixed panic with deadlock detection on macOS. (#203)
10 - Fixed incorrect synchronization in `create_hashtable`. (#210)
11 - Use `llvm_asm!` instead of the deprecated `asm!`. (#223)
12
13 ## lock_api 0.3.3 (2020-01-04)
14
15 - Deprecate unsound `MappedRwLockWriteGuard::downgrade` (#198)
16
17 ## parking_lot 0.10.0, parking_lot_core 0.7.0, lock_api 0.3.2 (2019-11-25)
18
19 - Upgrade smallvec dependency to 1.0 in parking_lot_core.
20 - Replace all usage of `mem::uninitialized` with `mem::MaybeUninit`.
21 - The minimum required Rust version is bumped to 1.36. Because of the above two changes.
22 - Make methods on `WaitTimeoutResult` and `OnceState` take `self` by value instead of reference.
23
24 ## parking_lot_core 0.6.2 (2019-07-22)
25
26 - Fixed compile error on Windows with old cfg_if version. (#164)
27
28 ## parking_lot_core 0.6.1 (2019-07-17)
29
30 - Fixed Android build. (#163)
31
32 ## parking_lot 0.9.0, parking_lot_core 0.6.0, lock_api 0.3.1 (2019-07-14)
33
34 - Re-export lock_api (0.3.1) from parking_lot (#150)
35 - Removed (non-dev) dependency on rand crate for fairness mechanism, by
36 including a simple xorshift PRNG in core (#144)
37 - Android now uses the futex-based ThreadParker. (#140)
38 - Fixed CloudABI ThreadParker. (#140)
39 - Fix race condition in lock_api::ReentrantMutex (da16c2c7)
40
41 ## lock_api 0.3.0 (2019-07-03, _yanked_)
42
43 - Use NonZeroUsize in GetThreadId::nonzero_thread_id (#148)
44 - Debug assert lock_count in ReentrantMutex (#148)
45 - Tag as `unsafe` and document some internal methods (#148)
46 - This release was _yanked_ due to a regression in ReentrantMutex (da16c2c7)
47
48 ## parking_lot 0.8.1 (2019-07-03, _yanked_)
49
50 - Re-export lock_api (0.3.0) from parking_lot (#150)
51 - This release was _yanked_ from crates.io due to unexpected breakage (#156)
52
53 ## parking_lot 0.8.0, parking_lot_core 0.5.0, lock_api 0.2.0 (2019-05-04)
54
55 - Fix race conditions in deadlock detection.
56 - Support for more platforms by adding ThreadParker implementations for
57 Wasm, Redox, SGX and CloudABI.
58 - Drop support for older Rust. parking_lot now requires 1.31 and is a
59 Rust 2018 edition crate (#122).
60 - Disable the owning_ref feature by default.
61 - Fix was_last_thread value in the timeout callback of park() (#129).
62 - Support single byte Mutex/Once on stable Rust when compiler is at least
63 version 1.34.
64 - Make Condvar::new and Once::new const fns on stable Rust and remove
65 ONCE_INIT (#134).
66 - Add optional Serde support (#135).
67
68 ## parking_lot 0.7.1 (2019-01-01)
69
70 - Fixed potential deadlock when upgrading a RwLock.
71 - Fixed overflow panic on very long timeouts (#111).
72
73 ## parking_lot 0.7.0, parking_lot_core 0.4.0 (2018-11-26)
74
75 - Return if or how many threads were notified from `Condvar::notify_*`
76
77 ## parking_lot 0.6.3 (2018-07-18)
78
79 - Export `RawMutex`, `RawRwLock` and `RawThreadId`.
80
81 ## parking_lot 0.6.2 (2018-06-18)
82
83 - Enable `lock_api/nightly` feature from `parking_lot/nightly` (#79)
84
85 ## parking_lot 0.6.1 (2018-06-08)
86
87 Added missing typedefs for mapped lock guards:
88
89 - `MappedMutexGuard`
90 - `MappedReentrantMutexGuard`
91 - `MappedRwLockReadGuard`
92 - `MappedRwLockWriteGuard`
93
94 ## parking_lot 0.6.0 (2018-06-08)
95
96 This release moves most of the code for type-safe `Mutex` and `RwLock` types
97 into a separate crate called `lock_api`. This new crate is compatible with
98 `no_std` and provides `Mutex` and `RwLock` type-safe wrapper types from a raw
99 mutex type which implements the `RawMutex` or `RawRwLock` trait. The API
100 provided by the wrapper types can be extended by implementing more traits on
101 the raw mutex type which provide more functionality (e.g. `RawMutexTimed`). See
102 the crate documentation for more details.
103
104 There are also several major changes:
105
106 - The minimum required Rust version is bumped to 1.26.
107 - All methods on `MutexGuard` (and other guard types) are no longer inherent
108 methods and must be called as `MutexGuard::method(self)`. This avoids
109 conflicts with methods from the inner type.
110 - `MutexGuard` (and other guard types) add the `unlocked` method which
111 temporarily unlocks a mutex, runs the given closure, and then re-locks the
112 mutex.
113 - `MutexGuard` (and other guard types) add the `bump` method which gives a
114 chance for other threads to acquire the mutex by temporarily unlocking it and
115 re-locking it. However this is optimized for the common case where there are
116 no threads waiting on the lock, in which case no unlocking is performed.
117 - `MutexGuard` (and other guard types) add the `map` method which returns a
118 `MappedMutexGuard` which holds only a subset of the original locked type. The
119 `MappedMutexGuard` type is identical to `MutexGuard` except that it does not
120 support the `unlocked` and `bump` methods, and can't be used with `CondVar`.