# Version 3.4.0 - Port to `event-listener` v5.0.0. (#74) # Version 3.3.0 - Add a `forget()` method for semaphore guards. (#73) - Increase MSRV to v1.60. (#75) # Version 3.2.0 - Add missing methods for blocking on locking with types wrapped in `Arc` (#71). # Version 3.1.2 - Bump `event-listener` to version v4.0.0. (#69) # Version 3.1.1 - Add a note to the documentation comparing this crate against `libstd`'s locks. (#58) # Version 3.1.0 - Add a `Default` implementation for `OnceCell` (#63). # Version 3.0.0 - **Breaking:** Add an enabled-by-default `std` feature that allows using this crate without the standard library. (#43) - Support blocking and non-blocking operations on the same locks. (#56) - Switch to a more efficient event notification mechanism. (#43) # Version 2.8.0 - Fix a bug where the `SemaphoreGuard::acquire_arc` future would busy wait under certain conditions (#42). - Add a `Semaphore::add_permits()` function to increase the number of available permits on the semaphore (#44). - Make `RwLockReadGuard` covariant over its lifetime (#45) - Add `RwLockReadGuardArc`, `RwLockWriteGuardArc`, and other reference counted guards for the `RwLock` type (#47). - Loosen the `Send`/`Sync` bounds on certain future types (#48). - Fix UB caused by the `MutexGuardArc::source` function allowing the user to drop an object in a different thread than the one it was acquired in (#50). This is a breaking change, but in the name of soundness. Therefore it doesn't break any valid behavior. - Fix a bug where this crate would not compile properly on `wasm64` (#51). # Version 2.7.0 - Replace some `async` blocks with manual futures (#34) - Remove our dependency on `futures-lite` (#36) - Mark guard types with `#[clippy::has_significant_drop]` (#37) # Version 2.6.0 - Add `OnceCell`. (#27) - Support wasm64. # Version 2.5.0 - Fix an issue where the future returned by `Mutex::lock_arc`/`Semaphore::acquire_arc` holds a reference to `self`. (#20, #21) # Version 2.4.0 - Add WASM support. (#14) # Version 2.3.0 - Merge all subcrates. # Version 2.2.0 - Add functions to upgrade and downgrade `RwLock` guards. - Make all constructors `const fn`. # Version 2.1.3 - Add `#![forbid(unsafe_code)]`. # Version 2.1.2 - Update dependencies. # Version 2.1.1 - Update crate description. # Version 2.1.0 - Add `Barrier` and `Semaphore`. # Version 2.0.1 - Update crate description. # Version 2.0.0 - Only re-export `async-mutex` and `async-rwlock`. # Version 1.1.5 - Replace the implementation with `async-mutex`. # Version 1.1.4 - Replace `usize::MAX` with `std::usize::MAX`. # Version 1.1.3 - Update dependencies. # Version 1.1.2 - Fix a deadlock issue. # Version 1.1.1 - Fix some typos. # Version 1.1.0 - Make locking fair. - Add `LockGuard::source()`. # Version 1.0.2 - Bump the `event-listener` version. - Add tests. # Version 1.0.1 - Update Cargo categories. # Version 1.0.0 - Initial version