Ada の「選択してから中止する」言語構造について質問があります。私が使用しているタスクは次のようになります。
select
delay 1.0;
do something with the partial result;
then abort
loop
...
long calculation
...
entry call to other task;
...
end loop;
end select;
中止分岐のコードはどこでも中止できますか、または遅延ステートメントやエントリ呼び出しなどの特定のポイントでのみ中止できますか? 私のプログラムでは、アボート ブランチのコードが長い計算を実行し、アボートされたときに部分的な計算結果がまだ有用です。しかし、どこでもコードを中断できると、データの不整合の問題が発生します。
ありがとうございました