X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.c;h=38e3a3c2ce2d8b27cb28db93895fe1e872ebc3f5;hb=0e4eef1e5c326750d1b94c9b365c0b3fab19e611;hp=33715b1ecd55ef2baac3818b59c7c502989ecaf2;hpb=5a5acb3698aa4ffdd738c301fa722afe12a1f3de;p=ghc-hetmet.git diff --git a/rts/Schedule.c b/rts/Schedule.c index 33715b1..38e3a3c 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -777,9 +777,11 @@ schedulePushWork(Capability *cap USED_IF_THREADS, // Check whether we have more threads on our run queue, or sparks // in our pool, that we could hand to another Capability. - if ((emptyRunQueue(cap) || cap->run_queue_hd->_link == END_TSO_QUEUE) - && sparkPoolSizeCap(cap) < 2) { - return; + if (cap->run_queue_hd == END_TSO_QUEUE) { + if (sparkPoolSizeCap(cap) < 2) return; + } else { + if (cap->run_queue_hd->_link == END_TSO_QUEUE && + sparkPoolSizeCap(cap) < 1) return; } // First grab as many free Capabilities as we can.