Avatar
omochimetaru 6/6/2021 4:01 PM
accidentally break structured concurrency なので
4:01 PM
structured concurrency は、並列に走らせたサブタスク達の完了を根本で非同期に待機する仕組みだけど
4:02 PM
そのタスクの中で何らかのAPIを呼んで、それがデリゲートメソッドを呼び戻して、そこがasynchandlerだと、
4:02 PM
detachしているので、大本の待機の仕組みからはぐれてしまうというケースの事じゃないでしょうか
4:03 PM
その次のinitial segment of their work synchronously の話は
4:04 PM
デリゲートメソッドが呼ばれて、非同期タスクを開始するにしても、その開始するまでの処理は同期になる、それが必要な状況があるのに、
4:04 PM
asyncHandlerだと全体がいきなりdetachedな非同期タスクになるから、冒頭の同期部分の処理が書けないって事を言っているのだと思った
4:05 PM
最後のactor isolatedな話は、detachedに専用に発火されちゃうので、asyncHandlerがどのアクターにも紐付けられないから、
4:06 PM
preferred semantics for synchronous UI handlers に適合できなくてうまくいかなそう
4:07 PM
preferred semanticsというのはおそらく、 例えばUIKitの処理は全部 MainActor でやり取りするってパターンを最終的に目指したいからじゃないかなあ