Struct deno_unsync::JoinSet
source · pub struct JoinSet<T> { /* private fields */ }
Expand description
Wraps the tokio JoinSet
to make it !Send-friendly and to make it easier and safer for us to
poll while empty.
Implementations§
source§impl<T: 'static> JoinSet<T>
impl<T: 'static> JoinSet<T>
sourcepub fn spawn<F>(&mut self, task: F) -> AbortHandlewhere
F: Future<Output = T> + 'static,
T: 'static,
pub fn spawn<F>(&mut self, task: F) -> AbortHandlewhere F: Future<Output = T> + 'static, T: 'static,
Spawn the provided task on the JoinSet
, returning an AbortHandle
that can be used to remotely cancel the task.
The provided future will start running in the background immediately
when this method is called, even if you don’t await anything on this
JoinSet
.
Panics
This method panics if called outside of a Tokio runtime.
sourcepub fn poll_join_next(
&mut self,
cx: &mut Context<'_>
) -> Poll<Result<T, JoinError>>
pub fn poll_join_next( &mut self, cx: &mut Context<'_> ) -> Poll<Result<T, JoinError>>
Waits until one of the tasks in the set completes and returns its output.
Cancel Safety
This method is cancel safe. If join_next
is used as the event in a tokio::select!
statement and some other branch completes first, it is guaranteed that no tasks were
removed from this JoinSet
.
sourcepub async fn join_next(&mut self) -> Option<Result<T, JoinError>>
pub async fn join_next(&mut self) -> Option<Result<T, JoinError>>
Waits until one of the tasks in the set completes and returns its output.
Returns None
if the set is empty.
Cancel Safety
This method is cancel safe. If join_next
is used as the event in a tokio::select!
statement and some other branch completes first, it is guaranteed that no tasks were
removed from this JoinSet
.