func updateEverythingFromTheCloud() async { // takes some minutes
await updateDrumsFromTheCloud() // these take a minute
await updateMixFromTheCloud()
await updateClapsFromTheCloud()
}
you would have something like
.. user has logged out, project has changed, etc {
updater?.cancel()
}
and hence,
func updateEverythingFromTheCloud() async { // takes some minutes
await updateDrumsFromTheCloud() // these take a minute
if Task.isCancelled {
blah(); return
}
await updateMixFromTheCloud()
if Task.isCancelled {
blah(); return
}
await updateClapsFromTheCloud()
if Task.isCancelled {
blah(); return
}
}
however often those sub-calls themselves may have sundry await so you also want THOSE to get a .cancel()
(A) In fact does the updater?.cancel() call also signal to any/all "sub" awaits that have been called by the updater await, or no?
(b) If not, I can't see a really elegant way to do so, is there such? Is there a call like someTask.tellMeAnySubTasksYouHaveAwaited() .. ??