#waker #async #thread #future #token #run-time

thread-waker

使用当前线程令牌实现的 Waker 实现

2 个稳定版本

新版本 1.1.0 2024 年 8 月 24 日
1.0.0 2024 年 7 月 27 日

511异步 中排名 #511

Download history 141/week @ 2024-07-27 2/week @ 2024-08-03

143 每月下载次数

BSL-1.0 许可证

5KB

thread-waker

Rust Crates.io Documentation

使用当前线程令牌的 Waker 实现。

这对于在没有实际使用运行时的情况下与 futures 一起工作非常有用

使用方法

use core::{time, task};
use std::thread;

use thread_waker::waker;

fn my_future(waker: task::Waker) {
    thread::sleep(time::Duration::from_millis(250));
    waker.wake();
}

let waker = waker(thread::current());

for _ in 0..4 {
    let waker = waker.clone();
    thread::spawn(move || my_future(waker));
    thread::park();
}

println!("I'm done!");

lib.rs:

使用当前线程令牌的 Waker 实现。

这对于在没有实际使用运行时的情况下与 futures 一起工作非常有用

使用方法

use core::{time, task};
use std::thread;

use thread_waker::waker;

fn my_future(waker: task::Waker) {
    thread::sleep(time::Duration::from_millis(250));
    waker.wake();
}

let waker = waker(thread::current());

for _ in 0..4 {
    let waker = waker.clone();
    thread::spawn(move || my_future(waker));
    thread::park();
}

println!("I'm done!");

无运行时依赖