中断可能実行

中断可能実行 (resumable execution) は、ゲスト言語の処理を中断して制御をホスト言語に戻し、その後、再び制御をゲスト言語に戻してゲスト言語側の処理の続きを実行する言語機能である。

ミッション

ミッションは、ホスト言語側による API 呼び出しによってインタープリターの実行が開始されてから、インタープリターの実行を終了してホスト言語側に制御が戻るまでの過程である。ミッションは中断可能 (resumable) であるものとそうでないものがある。ミッションを開始する API のうち resumable 引数を持つものは、ミッションが中断可能であるかどうかを指定することができる。execute_resumable_continuation API で開始されたミッションは中断可能である。他の方法で開始されたミッションは中断可能でない。

is resumablemain プリミティブ演算は引数を取らず、現在のインタープリターのミッションが中断可能であるかをブーリアン型で返す。

中断可能実行キュー

静的環境は中断可能実行キュー (resumable execution queue) を持つ。中断可能実行キューは複数のコンティニュエーションを格納することができるキューである。post resumable continuationmain プリミティブ演算は main 引数を取り、この引数はコンティニュエーションである必要がある。このプリミティブ演算は、指定されたコンティニュエーションを中断可能実行キューに追加する。