All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- MSRV has been raised to 1.65.0, due to the futures-util crate yanking all versions compatible with older compilers. (#61)
- The published package on crates.io now includes functional tests. No user-visible changes. (#53)
-
Updated to Tokio 1.0. Crates needing Tokio 0.2 must stay on the 0.6 branch. (#42)
-
Mutex::try_lock
,RwLock::try_read
, andRwLock::try_write
, now return a dedicated error type instead of()
, and it implementsstd::error::Error
. (#41)
- Fixed a soundness issue with
RwLock
: it shouldn't implementSync
unless its inner type also does. (#45)
- Updated to
std::future
.futures-locks
no longer works withfutures-0.1
. Forfutures-0.1
-based applications, continue to use the 0.5 branch. Most methods have similar interfaces. However, theIntoFuture
trait no longer exists in thestd::future
world. AndFuture<T>
doesn't implementFrom<T>
(though I don't know why it couldn't). SoMutex::with
,RwLock::with_read
, andRwLock::with_write
now take closures that returnimpl Future
, instead ofimpl IntoFuture
. Closure arguments that used to return something likeResult<T, E>
should now returnfutures::future::ready<Result<T, E>>
instead.
- Derived
Default
forMutex
andRwLock
(#22)
- Minimum compiler version has increased to 1.32.0 (#28)
- Fixed panics after an unready Future gets dropped (#24)
- Better documentation (#15)
- Minimum compiler version has increased to 1.31.0 (#10)
futures-locks
only depends on tokio cratestokio-current-thread
andtokio-executor
when built with thetokio
feature. (#10)
- Added
Mutex::with_local
,RwLock::with_read_local
, andRwLock::with_write_local
for non-Send
Futures. (#7)
Mutex::with
,RwLock::with_read
, andRwLock::with_write
now require their Futures to beSend
. They also can return errors. (#7)- Methods enabled with the tokio feature now return a Future type equivalent to the one returned by the provided closure. (#6)
Mutex::with
,RwLock::with_read
, andRwLock::with_write
now work with all Tokio Runtimes. (#7)
- Tokio support is now enabled by default.
- Added methods for running critical code in its own task. These methods require Tokio. (#3)
- Implemented
Future
for all future types, even when the wrapped type is unsized.