]>
Commit | Line | Data |
---|---|---|
f035d41b XL |
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`. |