信号処理の構造は、IF/Prolog 4.0にて、全く新しく設計されました。多くの信号ソースの処理が可能になりました。信号は、述語が有効になる直前のプログラム実行時にキャッチされます。ユーザは、信号ソース毎に信号ハンドラを定義することができます。信号が生じると信号ハンドラが実行され、ハンドラ終了後は元のプログラムの実行が継続されます。
[user]. signal_handler(alarm,(write('ALARM n'),abort)). f :- f. end of file. consult: file stdin consulted in 33 sec.
yes ?- alarm(2),f. ALARM
abort ?-