lbf
0
Q:

force tokio task to end

/*
tokio::spawn is conceptually same as thread::spawn. 
Like threads, force shutdown tasks externally is not supported. 

But you can wrap the inner future itself with `futures::future::select`
with another future that can accept external signal. 
If the signalling future completes, the other future will be dropped 
and should cancel all its pending tasks:
*/

let (sender, receiver) = tokio::sync::oneshot::channel();
tokio::spawn(
  futures::future::select(get_task(), receiver.map_err(drop))
);
sender.send(()); // this will cancel the task
0

New to Communities?

Join the community