diff options
Diffstat (limited to 'libgo/runtime/signal_unix.c')
-rw-r--r-- | libgo/runtime/signal_unix.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libgo/runtime/signal_unix.c b/libgo/runtime/signal_unix.c index ea0a58f2ea..66638dec56 100644 --- a/libgo/runtime/signal_unix.c +++ b/libgo/runtime/signal_unix.c @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux openbsd netbsd +// +build darwin dragonfly freebsd linux netbsd openbsd solaris #include <sys/time.h> @@ -122,6 +122,14 @@ os_sigpipe(void) } void +runtime_unblocksignals(void) +{ + sigset_t sigset_none; + sigemptyset(&sigset_none); + pthread_sigmask(SIG_SETMASK, &sigset_none, nil); +} + +void runtime_crash(void) { int32 i; @@ -137,6 +145,7 @@ runtime_crash(void) return; #endif + runtime_unblocksignals(); for(i = 0; runtime_sigtab[i].sig != -1; i++) if(runtime_sigtab[i].sig == SIGABRT) break; |