On Wed, Mar 19, 2014 at 10:21 PM, Anders Peter Fugmann <anders@fugmann.net> wrote:
Is printing from a signal handler illegal?
FWIW, that is illegal in some operating systems. I have seen it in one case at least:
* Linux with threads. printf in C is protected by a mutex. Suppose we are inside the printf, with the mutex locked and then we get a signal. We run the handler, and it wants to print out debug information. Welcome deadlock!
* Many system calls are not safe in the signal handler. FreeBSD has a list in sigaction(2) for instance. See
In practice, you should probably just set a flag in the signal handler and then handle that in a main loop of the program. Doing advanced stuff in a signal handler is usually dangerous non-compatible territory.