Rainer Müller - 2025-01-19

Another approach would be to assume that signal handlers are only used to treat execution problems and lead to a clean final situation in a procedure or task. That is the best way to use signals

Example:

saveProc: PROC;
ON sig1 GOTO cleanup;
   REQUEST s1;
   CALL procWhichMayCrashWithSignal;
   RELEASE s1;
   RETURN;
cleanup:
   RELEASE s1;
   RETURN;
   END;

In this case we can ignore all signal handlers for the static deadlock detection and assume that no signal is ever emitted.