let channel = AsyncChannel<Int>()
let task = Task {
print("awaiting")
await channel.send(1)
print("done sending")
}
try! await Task.sleep(nanoseconds: 1_000_000_000)
task.cancel()
print("cancelled task")
https://forums.swift.org/t/leaking-tasks-if-a-channel-receiver-is-no-longer-listening/56330