#thread #closures #access #run #owning #allowing #data-access

nightly thread_isolated

通过在拥有它们的线程上访问,隔离值允许通过闭包在拥有线程上运行

2 个版本

使用旧的 Rust 2015

0.1.1 2015 年 9 月 21 日
0.1.0 2015 年 5 月 17 日

#9 in #owning

MIT 许可证

16KB
256

ThreadIsolated

Build Status

API 文档

ThreadIsolated 是一个实验性库,允许非 Send、非 Sync 类型通过要求它们只在创建和拥有它们的线程上访问,在多个线程之间共享。其他线程可以通过提供将在拥有线程上运行的闭包来间接访问隔离数据。

在纯 Rust 应用程序中,ThreadIsolated 的价值可能非常有限(也许甚至完全没有用)。该类型的原始动机是在 iOS 上使用 Rust,在 iOS 上,常见的实例只能在 iOS 主线程上安全访问。使用 ThreadIsolated 给 Rust 提供了一种只有 iOS 主线程才能访问但仍然可以(尽管是间接的)从 Rust 中创建的线程中使用的类型的方法。

在调试构建中,ThreadIsolated 将使用线程局部存储并执行运行时检查,以确保所有线程访问都遵守预期的规则。在发布构建中,这些检查不会执行。

有关 ThreadIsolated 在纯 Rust 代码中的示例,请参阅 test_normal_use 函数,该函数位于 test 模块中的 src/lib.rs

作者

John Gallagher,[email protected]

许可证

ThreadIsolated 可在 MIT 许可证下获得。有关更多信息,请参阅 LICENSE 文件。

无运行时依赖