check for ThreadRelocated in checkBlackHoles()
authorSimon Marlow <marlowsd@gmail.com>
Thu, 26 Mar 2009 14:03:43 +0000 (14:03 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Thu, 26 Mar 2009 14:03:43 +0000 (14:03 +0000)
rts/Schedule.c

index 636b517..141c973 100644 (file)
@@ -2544,6 +2544,10 @@ checkBlackHoles (Capability *cap)
     prev = &blackhole_queue;
     t = blackhole_queue;
     while (t != END_TSO_QUEUE) {
+        if (t->what_next == ThreadRelocated) {
+            t = t->_link;
+            continue;
+        }
        ASSERT(t->why_blocked == BlockedOnBlackHole);
        type = get_itbl(UNTAG_CLOSURE(t->block_info.closure))->type;
        if (type != BLACKHOLE && type != CAF_BLACKHOLE) {