X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.c;h=040d16f25afd0eb7cbc70ef6aa947bf3a2c60fcc;hb=304e7fb703e7afddc1ef9be6aab6505e36b63b06;hp=47636a3ff4ca863d0c13d37e785354ea5803eeec;hpb=73e88c2a30cbb2fc9cf8c394c620c0f3edcdd0eb;p=ghc-hetmet.git diff --git a/rts/Schedule.c b/rts/Schedule.c index 47636a3..040d16f 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -1268,7 +1268,7 @@ scheduleHandleHeapOverflow( Capability *cap, StgTSO *t ) "--<< thread %ld (%s) stopped: HeapOverflow", (long)t->id, whatNext_strs[t->what_next]); - if (cap->context_switch) { + if (cap->r.rHpLim == NULL || cap->context_switch) { // Sometimes we miss a context switch, e.g. when calling // primitives in a tight loop, MAYBE_GC() doesn't check the // context switch flag, and we end up waiting for a GC.