Avatar
Avatar
omochimetaru
Actor isolatedな場合: 同じ Actor instance を持つ Task が同じisolation domainにいる not Actor isolatedな場合: Taskごとに独立なisolation domainにいる
Task.init でcontextを引き継げば、actor関係なく Task インスタンス同士でもisolation domainを共有すると思うんですよね。なので、actorに紐付けられてないTaskを考えるよりも、基本的に Task はインスタンスごとにisolation domainを持つけど、isolation domainを引き継いだ場合はその限りではないという整理の方がわかりやすいかなと。
5:26 AM
Task.init でcontextを引き継げば、actor関係なく Task インスタンス同士でもisolation domainを共有する
あれ?これは起こらないのかな・・・
5:26 AM
↓これ怒られました final class Foo { var value: Int = 0 } Task.detached { let foo = Foo() Task { foo.value += 1 print(foo.value) } foo.value += 1 print(foo.value) }
5:27 AM
内側の Task が外側の Task のisolation domainを引き継ぐと思ってた。引き継ぐのはactor contextだけなのか