Mercurial > hg > octave-lyh
diff src/sighandlers.cc @ 5144:25b090e1be9f
[project @ 2005-02-15 12:06:05 by jwe]
author | jwe |
---|---|
date | Tue, 15 Feb 2005 12:06:44 +0000 |
parents | 0f9108f298ab |
children | 4c8a2e4e0717 |
line wrap: on
line diff
--- a/src/sighandlers.cc +++ b/src/sighandlers.cc @@ -176,11 +176,28 @@ { #if defined (HAVE_POSIX_SIGNALS) struct sigaction act, oact; + act.sa_handler = handler; act.sa_flags = 0; + + if (sig == SIGALRM) + { +#if defined (SA_INTERRUPT) + act.sa_flags |= SA_INTERRUPT; +#endif + } + else + { +#if defined (SA_RESTART) + act.sa_flags |= SA_RESTART; +#endif + } + sigemptyset (&act.sa_mask); sigemptyset (&oact.sa_mask); + sigaction (sig, &act, &oact); + return oact.sa_handler; #else return signal (sig, handler);