X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FSchedule.c;h=a7696ed785e330f1ee5e132836425de975dcfeeb;hb=48d21c1fbdf9cf032a528e19195714229530a632;hp=fe50cd4e5d2883cccf5707ff108dd27165109d0d;hpb=7c82b4a858411e7363f46d29bbd297e7880ef625;p=ghc-hetmet.git diff --git a/ghc/rts/Schedule.c b/ghc/rts/Schedule.c index fe50cd4..a7696ed 100644 --- a/ghc/rts/Schedule.c +++ b/ghc/rts/Schedule.c @@ -408,6 +408,12 @@ schedule (Capability *initialCapability, Task *task) deleteRunQueue(cap); if (shutting_down_scheduler) { IF_DEBUG(scheduler, sched_belch("shutting down")); + // If we are a worker, just exit. If we're a bound thread + // then we will exit below when we've removed our TSO from + // the run queue. + if (task->tso == NULL) { + return cap; + } } else { IF_DEBUG(scheduler, sched_belch("interrupted")); }