version 1.24, 2003/02/02 11:05:50
|
version 1.26, 2003/03/08 19:52:05
|
Line 72 void install_signal_handler(int sig, voi
|
Line 72 void install_signal_handler(int sig, voi
|
} |
} |
#endif |
#endif |
|
|
typedef void Sigfunc(int); |
|
|
|
Sigfunc *bsd_signal(int signo, Sigfunc *func) |
Sigfunc *bsd_signal(int signo, Sigfunc *func) |
{ |
{ |
struct sigaction act, oact; |
struct sigaction act, oact; |
Line 109 signal_throw(int sig)
|
Line 107 signal_throw(int sig)
|
case SIGBUS: code=-23; break; |
case SIGBUS: code=-23; break; |
#endif |
#endif |
case SIGSEGV: code=-9; break; |
case SIGSEGV: code=-9; break; |
|
#ifdef SIGPIPE |
|
case SIGPIPE: code=-2049; break; |
|
#endif |
default: code=-256-sig; break; |
default: code=-256-sig; break; |
} |
} |
|
#ifdef __CYGWIN__ |
|
/* the SA_NODEFER apparently does not work on Cygwin 1.3.18(0.69/3/2) */ |
|
{ |
|
sigset_t emptyset; |
|
sigemptyset(&emptyset); |
|
sigprocmask(SIG_SETMASK, &emptyset, NULL); |
|
} |
|
#endif |
longjmp(throw_jmp_buf,code); /* !! or use siglongjmp ? */ |
longjmp(throw_jmp_buf,code); /* !! or use siglongjmp ? */ |
} |
} |
|
|