diff options
Diffstat (limited to 'rts/ThreadPaused.c')
-rw-r--r-- | rts/ThreadPaused.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/rts/ThreadPaused.c b/rts/ThreadPaused.c index d01be291d3..a916891aa8 100644 --- a/rts/ThreadPaused.c +++ b/rts/ThreadPaused.c @@ -149,7 +149,7 @@ stackSqueeze(Capability *cap, StgTSO *tso, StgPtr bottom) // | ********* | // -| ********* | // - // 'sp' points the the current top-of-stack + // 'sp' points the current top-of-stack // 'gap' points to the stack_gap structure inside the gap // ***** indicates real stack data // ..... indicates gap @@ -306,13 +306,6 @@ threadPaused(Capability *cap, StgTSO *tso) continue; } - // We should never have made it here in the event of blackholes that - // we already own; they should have been marked when we blackholed - // them and consequently we should have stopped our stack walk - // above. - ASSERT(!((bh_info == &stg_BLACKHOLE_info) - && (((StgInd*)bh)->indirectee == (StgClosure*)tso))); - // zero out the slop so that the sanity checker can tell // where the next closure is. OVERWRITING_CLOSURE(bh); @@ -329,6 +322,10 @@ threadPaused(Capability *cap, StgTSO *tso) if (cur_bh_info != bh_info) { bh_info = cur_bh_info; +#if defined(PROF_SPIN) + ++whitehole_threadPaused_spin; +#endif + busy_wait_nop(); goto retry; } #endif |