* simultaneous access by two STG threads.
*/
Mutex sm_mutex;
-/*
- * This mutex is used by atomicModifyMutVar# only
- */
-Mutex atomic_modify_mutvar_mutex;
#endif
stp->compact = 0;
stp->bitmap = NULL;
#ifdef THREADED_RTS
- initSpinLock(&stp->sync_todo);
initSpinLock(&stp->sync_large_objects);
#endif
stp->threads = END_TSO_QUEUE;
#if defined(THREADED_RTS)
initMutex(&sm_mutex);
- initMutex(&atomic_modify_mutvar_mutex);
#endif
ACQUIRE_SM_LOCK;
freeAllMBlocks();
#if defined(THREADED_RTS)
closeMutex(&sm_mutex);
- closeMutex(&atomic_modify_mutvar_mutex);
#endif
stgFree(nurseries);
}
if (RtsFlags.GcFlags.generations == 1) {
checkHeap(g0s0->blocks);
- checkChain(g0s0->large_objects);
+ checkLargeObjects(g0s0->large_objects);
} else {
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
ASSERT(countBlocks(generations[g].steps[s].large_objects)
== generations[g].steps[s].n_large_blocks);
checkHeap(generations[g].steps[s].blocks);
- checkChain(generations[g].steps[s].large_objects);
+ checkLargeObjects(generations[g].steps[s].large_objects);
}
}