runtime: Ignore SIGPROF if not on a Go thread.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Jul 2013 04:42:09 +0000 (04:42 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Jul 2013 04:42:09 +0000 (04:42 +0000)
From-SVN: r201154

libgo/runtime/go-signal.c

index 1e800578ffaf0c51a9581202d26fad5b8e2e9b20..9771b71cfcf60abbbf59987aa7976a607aa5b8f4 100644 (file)
@@ -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;