comparison libpurple/util.c @ 15645:61b42cf81aa4

Restore default signal handlers in fork()'d children. This adds a gaim_restore_default_signal_handlers() utility function since children are made in multiple places.
author Evan Schoenberg <evan.s@dreskin.net>
date Sun, 18 Feb 2007 18:16:57 +0000
parents b0471b2a1de9
children 122be0df0567 80944a182710
comparison
equal deleted inserted replaced
15644:602eb093e4c0 15645:61b42cf81aa4
4113 protocol = "prpl-aim"; 4113 protocol = "prpl-aim";
4114 } 4114 }
4115 return protocol; 4115 return protocol;
4116 } 4116 }
4117 4117
4118 void gaim_restore_default_signal_handlers(void)
4119 {
4120 #ifdef HAVE_SIGNAL_H
4121 signal(SIGHUP, SIG_DFL); /* 1: terminal line hangup */
4122 signal(SIGINT, SIG_DFL); /* 2: interrupt program */
4123 signal(SIGQUIT, SIG_DFL); /* 3: quit program */
4124 signal(SIGILL, SIG_DFL); /* 4: illegal instruction (not reset when caught) */
4125 signal(SIGTRAP, SIG_DFL); /* 5: trace trap (not reset when caught) */
4126 signal(SIGABRT, SIG_DFL); /* 6: abort program */
4127 signal(SIGEMT, SIG_DFL); /* 7: EMT instruction */
4128 signal(SIGFPE, SIG_DFL); /* 8: floating point exception */
4129 signal(SIGBUS, SIG_DFL); /* 10: bus error */
4130 signal(SIGSEGV, SIG_DFL); /* 11: segmentation violation */
4131 signal(SIGSYS, SIG_DFL); /* 12: bad argument to system call */
4132 signal(SIGPIPE, SIG_DFL); /* 13: write on a pipe with no reader */
4133 signal(SIGALRM, SIG_DFL); /* 14: real-time timer expired */
4134 signal(SIGTERM, SIG_DFL); /* 15: software termination signal */
4135 signal(SIGCHLD, SIG_DFL); /* 20: child status has changed */
4136 signal(SIGXCPU, SIG_DFL); /* 24: exceeded CPU time limit */
4137 signal(SIGXFSZ, SIG_DFL); /* 25: exceeded file size limit */
4138 #endif
4139 }