pub struct LocalKey<T: 'static> { /* private fields */ }展开描述
用于 task-local 数据的 key。
此类型由 task_local! 宏生成。
与 std::thread::LocalKey 不同,tokio::task::LocalKey 不会在首次访问时惰性初始化值。相反,值会在包含 task-local 的 future 第一次被 Tokio 等 futures 执行器 poll 时初始化。
§示例
tokio::task_local! {
static NUMBER: u32;
}
NUMBER.scope(1, async move {
assert_eq!(NUMBER.get(), 1);
}).await;
NUMBER.scope(2, async move {
assert_eq!(NUMBER.get(), 2);
NUMBER.scope(3, async move {
assert_eq!(NUMBER.get(), 3);
}).await;
}).await;实现§
Source§impl<T: 'static> LocalKey<T>
impl<T: 'static> LocalKey<T>
Sourcepub fn scope<F>(&'static self, value: T, f: F) -> TaskLocalFuture<T, F> ⓘwhere
F: Future,
pub fn scope<F>(&'static self, value: T, f: F) -> TaskLocalFuture<T, F> ⓘwhere
F: Future,
Sourcepub fn sync_scope<F, R>(&'static self, value: T, f: F) -> Rwhere
F: FnOnce() -> R,
pub fn sync_scope<F, R>(&'static self, value: T, f: F) -> Rwhere
F: FnOnce() -> R,
Trait 实现§
自动 Trait 实现§
impl<T> Freeze for LocalKey<T>
impl<T> RefUnwindSafe for LocalKey<T>
impl<T> Send for LocalKey<T>
impl<T> Sync for LocalKey<T>
impl<T> Unpin for LocalKey<T>
impl<T> UnsafeUnpin for LocalKey<T>
impl<T> UnwindSafe for LocalKey<T>
Blanket 实现§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. 更多信息