7 个版本
0.3.3 | 2019年11月7日 |
---|---|
0.3.2-alpha.2 | 2019年8月28日 |
0.2.0-alpha.2 | 2019年8月22日 |
0.1.1 | 2019年6月28日 |
#937 in 并发
每月209次下载
被 2 个 crate 使用
29KB
669 行
future-parking_lot
这是为 parking_lot 提供的尽可能简单的 Future 实现。得益于 async/await 功能,现在它可以直接在 Mutex<T>
和 RwLock<T>
上运行。
示例
use std::sync::Arc;
use parking_lot::RwLock;
use future_parking_lot::rwlock::{FutureReadable, FutureWriteable};
use lazy_static::lazy_static;
lazy_static! {
static ref LOCK: Arc<RwLock<Vec<String>>> = Arc::new(RwLock::new(Vec::new()));
}
#[tokio::main]
async fn main() -> Result<(), ()> {
{
let mut v = LOCK.future_write().await;
v.push(String::from("It works!"));
}
let v = LOCK.future_read().await;
assert!(v.len() == 1 && v[0] == "It works!");
Ok(())
}
lib.rs
:
future-parking_lot
为 parking_lot 提供的简单 Future 实现
依赖项
~0.8–1MB
~17K SLoC