From 71c492fc420ee9d2b6075e6a1bb7b8c2cf5f6b6d Mon Sep 17 00:00:00 2001 From: simonmar Date: Thu, 3 Nov 2005 16:34:45 +0000 Subject: [PATCH] [project @ 2005-11-03 16:34:45 by simonmar] schedulePushWork(): don't attempt to move the thread bound to the current Task to a different Capability. --- ghc/rts/Schedule.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c index 6528fdd..c2426fa 100644 --- a/ghc/rts/Schedule.c +++ b/ghc/rts/Schedule.c @@ -779,7 +779,8 @@ schedulePushWork(Capability *cap USED_WHEN_SMP, for (; t != END_TSO_QUEUE; t = next) { next = t->link; t->link = END_TSO_QUEUE; - if (t->what_next == ThreadRelocated) { + if (t->what_next == ThreadRelocated + || t->bound == task) { // don't move my bound thread prev->link = t; prev = t; } else if (i == n_free_caps) { -- 1.7.10.4