summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2013-07-23 04:42:09 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-07-23 04:42:09 +0000
commit5f9ae7f2d6fa96a0107bbfc9e8d7cd3727fcf2d0 (patch)
treecec25b76a29bb0eee3093c06dc1f16e49b741531 /libgo
parent433cc7b037fbadc15e43083aed48e2f71e0e282f (diff)
downloadgcc-5f9ae7f2d6fa96a0107bbfc9e8d7cd3727fcf2d0.tar.gz
runtime: Ignore SIGPROF if not on a Go thread.
From-SVN: r201154
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/go-signal.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
index 1e800578ffa..9771b71cfcf 100644
--- a/libgo/runtime/go-signal.c
+++ b/libgo/runtime/go-signal.c
@@ -166,21 +166,22 @@ runtime_sighandler (int sig, Siginfo *info,
int i;
m = runtime_m ();
- if (m == NULL)
- {
- runtime_badsignal (sig);
- return;
- }
#ifdef SIGPROF
if (sig == SIGPROF)
{
- if (gp != runtime_m ()->g0 && gp != runtime_m ()->gsignal)
+ if (m != NULL && gp != m->g0 && gp != m->gsignal)
runtime_sigprof ();
return;
}
#endif
+ if (m == NULL)
+ {
+ runtime_badsignal (sig);
+ return;
+ }
+
for (i = 0; runtime_sigtab[i].sig != -1; ++i)
{
SigTab *t;