3 个不稳定版本

0.3.0 2022年3月10日
0.2.1 2019年3月23日
0.2.0 2017年9月28日

#3#joining

Download history • Rust 包仓库 236/week @ 2024-04-20 • Rust 包仓库 257/week @ 2024-04-27 • Rust 包仓库 117/week @ 2024-05-04 • Rust 包仓库 54/week @ 2024-05-11 • Rust 包仓库 200/week @ 2024-05-18 • Rust 包仓库 44/week @ 2024-05-25 • Rust 包仓库 133/week @ 2024-06-01 • Rust 包仓库 46/week @ 2024-06-08 • Rust 包仓库 27/week @ 2024-06-15 • Rust 包仓库 33/week @ 2024-06-22 • Rust 包仓库 111/week @ 2024-06-29 • Rust 包仓库 48/week @ 2024-07-06 • Rust 包仓库 61/week @ 2024-07-13 • Rust 包仓库 47/week @ 2024-07-20 • Rust 包仓库 126/week @ 2024-07-27 • Rust 包仓库 84/week @ 2024-08-03 • Rust 包仓库

320 每月下载量
3 个 crate(2 个直接) 中使用

MIT/Apache

11KB
145 代码行

thread_tryjoin

它是由 https://github.com/badboy/thread_tryjoin-rs 分支出来的

是否曾经需要等待线程完成,但又认为你仍然可以在它完成之前继续工作?

JoinHandle#join() 等待线程完成且是阻塞的,因此不允许你反复尝试。

幸运的是,有一个非便携的 pthread API:pthread_tryjoin_np

此库通过在 JoinHandle 上提供 try_join 方法方便地访问。但它仅在 Linux 上工作。

它使用 JoinHandleExt 来获取底层的 pthread_t 处理器。

用法

[dependencies]
thread_tryjoin = "0.2"

文档

示例

use std::time::Duration;
use std::thread;
use thread_tryjoin::TryJoinHandle;

let t = thread::spawn(|| { thread::sleep(Duration::from_secs(1)); });
assert!(t.try_join().is_err());

许可

许可为以下之一

根据您的选择。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的任何旨在包含在作品中的贡献,将按照上述方式双重许可,不附加任何其他条款或条件。

依赖

~43KB