'Are Tasks automatically cancelled upon return/completion in Swift?

I am a little uncertain about task cancellation in swift. My question is:

If a task reaches its return line (in this example, Line 4), does this mean it will be automatically canceled? (and thus free up memory + any used thread(s) previously occupied by the Task?)

someBlock {
    Task<Bool, Never> {
        await doSomeWork()
        return true // Line 4
    }
}

As a follow-up, what if we then call .task on a SwiftUI View? Does anything change?

SomeView
    .task {
        await doSomeWork()
    }

Thank you for your time!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source