Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
bgColor#ffcccc
void handler(int signum) {
  signal(signum, handler);
  /* Handle Signal */
}

Wiki Markup
Unfortunately this solution still contains a race window, starting when the host environment resets the signal and ending when the handler calls {{signal()}}. During that time, a second signal sent to the program will trigger the default signal behavior, thereby defeating the persistent behavior (see \[[SIG34-C. Do not call signal() from within interruptible signal handlers]\]).

A secure solution would prevent the environment from resetting the signal in the first place, and thereby guaranteeing persistence. Unfortunately, Windows does not provide a secure solution to this problem.

...