StgTSO *tso;
for (task = all_tasks; task != NULL; task = task->all_link) {
if (!task->stopped && task->tso) {
+ ASSERT(task->tso->bound == task);
tso = (StgTSO *) isAlive((StgClosure *)task->tso);
if (tso == NULL) {
barf("task %p: main thread %d has been GC'd",
resetNurseries();
// start any pending finalizers
+ RELEASE_SM_LOCK;
scheduleFinalizers(last_free_capability, old_weak_ptr_list);
+ ACQUIRE_SM_LOCK;
// send exceptions to any threads which were about to die
resurrectThreads(resurrected_threads);