in reply to Re^3: Complex and reliable signal handling.
in thread Complex and reliable signal handling.

Thank you for your response.
It could also be that you should not exit() within the signal handler, but instead should set a flag which causes the main loop of the child process to end as-soon as-possible.
When this is done, then, no matter what the process was doing at the unpredictable instant in which the termination-signal arrived, you know that it will end at a predictable point and in a predictable state
Yes, that's often good idea to just set flag in signal handler.

However, I was hoping that Perl is kinda high-level language, so there can be nothing unpredictible in termination in random point of program (with Safe-signals).

Another problem, that my child processes have several possible places where they can spend significant amount of time. Inserting check for flag in all of those places is inconvenient.
  • Comment on Re^4: Complex and reliable signal handling.