第139章へようこそ。
第138章で、async関数がenumに変換されることを見ました。
中断のたびに判別子とデータが書き換わり、再開のたびに読み出される。
Futureの状態はヒープ上のenumに保持される。
今日のテーマは「メモリ境界」です。
そのenumの中に何を入れられるか、という問いに向き合います。
async関数の中で使う変数は、awaitをまたげばenumのフィールドになる。
しかし、すべての値がenumに入れるわけではない。
タスクの境界を越える値には条件がある。
その条件は、第134章で学んだSendとSyncに直結している。
並行性の次元と時間の次元が、ここで交差します。