BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
authorSimon Marlow <marlowsd@gmail.com>
Wed, 5 May 2010 09:45:34 +0000 (09:45 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 5 May 2010 09:45:34 +0000 (09:45 +0000)
rts/Schedule.c

index f7b26a4..5ed575e 100644 (file)
@@ -2551,6 +2551,12 @@ resurrectThreads (StgTSO *threads)
             * can wake up threads, remember...).
             */
            continue;
+        case BlockedOnMsgThrowTo:
+            // This can happen if the target is masking, blocks on a
+            // black hole, and then is found to be unreachable.  In
+            // this case, we want to let the target wake up and carry
+            // on, and do nothing to this thread.
+            continue;
        default:
            barf("resurrectThreads: thread blocked in a strange way: %d",
                  tso->why_blocked);