StgTVar *tvar = (StgTVar *)p;
thread((StgPtr)&tvar->current_value);
thread((StgPtr)&tvar->first_wait_queue_entry);
-#if defined(SMP)
- thread((StgPtr)&tvar->last_update_by);
-#endif
return p + sizeofW(StgTVar);
}
freeChain(free_bd->link);
free_bd->link = NULL;
}
- stp->n_old_blocks = free_blocks;
return free_blocks;
}
// any threads resurrected during this GC
thread((StgPtr)&resurrected_threads);
- // the main threads list
+ // the task list
{
- StgMainThread *m;
- for (m = main_threads; m != NULL; m = m->link) {
- thread((StgPtr)&m->tso);
+ Task *task;
+ for (task = all_tasks; task != NULL; task = task->all_link) {
+ if (task->tso) {
+ thread((StgPtr)&task->tso);
+ }
}
}