[project @ 2005-01-12 12:51:57 by simonmar]
authorsimonmar <unknown>
Wed, 12 Jan 2005 12:51:57 +0000 (12:51 +0000)
committersimonmar <unknown>
Wed, 12 Jan 2005 12:51:57 +0000 (12:51 +0000)
Yet another STM fix: don't attempt to kick any threads which are ThreadRelocated.

ghc/rts/Schedule.c

index 95e9ba4..4615c88 100644 (file)
@@ -1334,7 +1334,7 @@ run_thread:
        * When next scheduled they will try to commit, this commit will fail and
        * they will retry. */
       for (t = all_threads; t != END_TSO_QUEUE; t = t -> link) {
-        if (t -> trec != NO_TREC && t -> why_blocked == NotBlocked) {
+        if (t -> what_next != ThreadRelocated && t -> trec != NO_TREC && t -> why_blocked == NotBlocked) {
           if (!stmValidateTransaction (t -> trec)) {
             IF_DEBUG(stm, sched_belch("trec %p found wasting its time", t));