- evacuate((StgClosure **)&tso->blocked_exceptions);
- evacuate((StgClosure **)&tso->bq);
-
- // scavange current transaction record
- evacuate((StgClosure **)&tso->trec);
-
- // scavenge this thread's stack
- scavenge_stack(tso->sp, &(tso->stack[tso->stack_size]));
-
- if (gct->failed_to_evac) {
- tso->dirty = 1;
- evacuate((StgClosure **)&tso->_link);
- } else {
- tso->dirty = 0;
- evacuate((StgClosure **)&tso->_link);
- if (gct->failed_to_evac) {
- tso->flags |= TSO_LINK_DIRTY;
- } else {
- tso->flags &= ~TSO_LINK_DIRTY;
- }
- }