ぜのぜ

しりとりしようぜのぜのぜのぜ

66日目

日記

レバニラうまかった

今日書いたコード

import Foundation
import _Concurrency

struct Photo {}

func uploadThumbail(_ thumbnail: Photo) async {
    print("uploadThumbnail started")
    await Task.sleep(2 * 1_000_000_000)
    print("uploadThumbnail ended")
}
func uploadTitle(_ title: String) async {
    print("uploadTitle started")
    await Task.sleep(2 * 1_000_000_000)
    print("uploadTitle ended")
}

Task {
    await withTaskGroup(of: Void.self) { taskGroup in
        taskGroup.addTask {
            await uploadThumbail(Photo())
            print("first task is cancelled:", Task.isCancelled)
        }
        taskGroup.addTask {
            await uploadTitle("Title")
            print("second task is cancelled:", Task.isCancelled)
        }
        taskGroup.cancelAll()
        print("taskGroup is cancelled:", taskGroup.isCancelled)
    }
}

初めて知ったこと

task groupがキャンセルされるとそこに属しているtaskもキャンセルされる.属しているtaskがキャンセルされるとtask groupはキャンセルされる?