3

libtask コルーチンをディスクに一時停止し、別のプロセスで再度復元できるようにして、中断したところから続行できるようにしたいと考えています。

4

1 に答える 1

2

これは不可能です。コルーチンの状態は、実行中のプロセスの実行状態、開いているファイル記述子などに関連付けられています。実際には、一般的なケースで解決するのは非常に難しい問題です。議論については、ウィキペディアのこのページを参照してください。

http://en.wikipedia.org/wiki/Application_checkpointing

コルーチンの状態を慎重に定義し、それを再構築するために保存する必要がある情報を決定するというアプローチを取ることができます。次に、その情報に基づいてコルーチンを再開できるようにします。

Dragonfly BSD には、タスクを一時停止して後で再開する機能がありますが、Smalltalk や Squeak などの VM イメージベースのシステムを除いて、私が聞いた唯一の一般的なソリューションです。

于 2013-06-29T02:01:14.003 に答える