]> mj.ucw.cz Git - libucw.git/blob - lib/sighandler.c
- lizard_alloc() turns on the wrapper for SIGSEGV and lizard_free() restores
[libucw.git] / lib / sighandler.c
1 /*
2  *      Catching of signals and calling callback functions
3  *
4  *      (c) 2004, Robert Spalek <robert@ucw.cz>
5  */
6
7 #include "lib/lib.h"
8
9 #include <stdlib.h>
10 #include <signal.h>
11
12 my_sighandler_t signal_handler[_NSIG];
13
14 static void
15 signal_handler_internal(int sig)
16 {
17   signal(sig, signal_handler_internal);
18   if (signal_handler[sig])
19     signal_handler[sig]();
20   abort();
21 }
22
23 void *
24 handle_signal(int signum)
25 {
26   return signal(signum, signal_handler_internal);
27 }