Struct TaskLocalFuture
pub struct TaskLocalFuture<T, F>where
T: 'static,{ /* private fields */ }
Available on crate feature
rt only.A future that sets a value T of a task local for the future F during its execution.
The value of the task-local must be 'static and will be dropped on the completion of the future.
Created by the function LocalKey::scope.
Examples
tokio::task_local! {
static NUMBER: u32;
}
NUMBER.scope(1, async move {
println!("task local value: {}", NUMBER.get());
}).await;Implementations
impl<T, F> TaskLocalFuture<T, F>where T: 'static,
pub fn take_value(self: Pin<&mut Self>) -> Option<T>
Returns the value stored in the task local by this TaskLocalFuture.
The function returns:
-
Some(T)if the task local value exists. -
Noneif the task local value has already been taken.
Note that this function attempts to take the task local value even if the future has not yet completed. In that case, the value will no longer be available via the task local after the call to take_value.
Examples
tokio::task_local! {
static KEY: u32;
}
let fut = KEY.scope(42, async {
// Do some async work
});
let mut pinned = Box::pin(fut);
// Complete the TaskLocalFuture
let _ = pinned.as_mut().await;
// And here, we can take task local value
let value = pinned.as_mut().take_value();
assert_eq!(value, Some(42));Trait Implementations
impl<T, F> Debug for TaskLocalFuture<T, F>where T: Debug + 'static,
impl<T: 'static, F> Drop for TaskLocalFuture<T, F>
impl<T: 'static, F: Future> Future for TaskLocalFuture<T, F>
impl<'__pin, T, F> Unpin for TaskLocalFuture<T, F>where PinnedFieldsOf<__Origin<'__pin, T, F>>: Unpin, T: 'static,
Auto Trait Implementations
impl<T, F> !UnsafeUnpin for TaskLocalFuture<T, F>
impl<T, F> Freeze for TaskLocalFuture<T, F>
impl<T, F> RefUnwindSafe for TaskLocalFuture<T, F>where T: RefUnwindSafe, F: RefUnwindSafe,
impl<T, F> Send for TaskLocalFuture<T, F>
impl<T, F> Sync for TaskLocalFuture<T, F>
impl<T, F> UnwindSafe for TaskLocalFuture<T, F>where T: UnwindSafe, F: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<F> IntoFuture for Fwhere F: Future,
type IntoFuture = F
Which kind of future are we turning this into?
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/futures/struct.TaskLocalFuture.html