next up previous contents index
Next: 13.4 Missing Functionality Up: 13 FreeBSD C Library: Previous: 13.2 Malloc Support

13.3 Signal Support

Rudimentary signal support is provided in both the single and multi-threaded versions of the library. As part of the C library initialization, a delivery handler is provided to the kernel library that is used to pass up hardware exceptions (see Section 10.21). Assuming the application has made the necessary calls to sigaction to arrange for catching signals, an exception causes the delivery function to be invoked, which converts the machine trap state into a more standard sigcontext structure, and passes that to the application via the signal handler. The application can freely modify the sigcontext structure; the sigcontext is copied back into the trap state when the handler returns, which then becomes the new machine state. Use caution! Note that the default action for all signals is to call panic and reboot the machine. Any hardware exception that that results in a signal that is blocked, also generates a panic and reboot.



University of Utah Flux Research Group