// be on the mutable list.
if (tso->what_next == ThreadRelocated) continue;
if (tso->flags & (TSO_DIRTY|TSO_LINK_DIRTY)) {
- ASSERT(Bdescr((P_)tso)->gen_no == 0 || tso->flags & TSO_MARKED);
+ ASSERT(Bdescr((P_)tso)->gen_no == 0 || (tso->flags & TSO_MARKED));
tso->flags &= ~TSO_MARKED;
}
}
}
void
-checkMutableLists (void)
+checkMutableLists (rtsBool checkTSOs)
{
nat g, i;
checkMutableList(capabilities[i].mut_lists[g], g);
}
}
- checkGlobalTSOList(rtsTrue);
+ checkGlobalTSOList(checkTSOs);
}
/*
extern StgOffset checkClosure ( StgClosure* p );
extern void checkMutableList ( bdescr *bd, nat gen );
-extern void checkMutableLists (void);
+extern void checkMutableLists ( rtsBool checkTSOs );
#if defined(GRAN)
extern void checkTSOsSanity(void);
// check stack sanity *before* GC
IF_DEBUG(sanity, checkFreeListSanity());
- IF_DEBUG(sanity, checkMutableLists());
+ IF_DEBUG(sanity, checkMutableLists(rtsTrue));
// Initialise all our gc_thread structures
for (t = 0; t < n_gc_threads; t++) {
== generations[g].steps[s].n_large_blocks);
checkHeap(generations[g].steps[s].blocks);
checkChain(generations[g].steps[s].large_objects);
- if (g > 0) {
- checkMutableList(generations[g].mut_list, g);
- }
}
}
#if defined(THREADED_RTS)
// check the stacks too in threaded mode, because we don't do a
// full heap sanity check in this case (see checkHeap())
- checkGlobalTSOList(rtsTrue);
+ checkMutableLists(rtsTrue);
#else
- checkGlobalTSOList(rtsFalse);
+ checkMutableLists(rtsFalse);
#endif
}