runtime: Ignore SIGPROF if not on a Go thread.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Jul 2013 04:42:09 +0000 (04:42 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Jul 2013 04:42:09 +0000 (04:42 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201154 138bc75d-0d04-0410-961f-82ee72b054a4

libgo/runtime/go-signal.c

index 1e80057..9771b71 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;