57 |
57 |
58 NOT_PRODUCT(TraceTime tm("MarkFromRootsTask", |
58 NOT_PRODUCT(TraceTime tm("MarkFromRootsTask", |
59 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); |
59 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); |
60 ParCompactionManager* cm = |
60 ParCompactionManager* cm = |
61 ParCompactionManager::gc_thread_compaction_manager(which); |
61 ParCompactionManager::gc_thread_compaction_manager(which); |
62 assert(cm->stacks_have_been_allocated(), |
|
63 "Stack space has not been allocated"); |
|
64 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
62 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
65 |
63 |
66 switch (_root_type) { |
64 switch (_root_type) { |
67 case universe: |
65 case universe: |
68 Universe::oops_do(&mark_and_push_closure); |
66 Universe::oops_do(&mark_and_push_closure); |
133 |
130 |
134 NOT_PRODUCT(TraceTime tm("RefProcTask", |
131 NOT_PRODUCT(TraceTime tm("RefProcTask", |
135 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); |
132 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); |
136 ParCompactionManager* cm = |
133 ParCompactionManager* cm = |
137 ParCompactionManager::gc_thread_compaction_manager(which); |
134 ParCompactionManager::gc_thread_compaction_manager(which); |
138 assert(cm->stacks_have_been_allocated(), |
|
139 "Stack space has not been allocated"); |
|
140 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
135 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
141 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); |
136 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); |
142 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), |
137 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), |
143 mark_and_push_closure, follow_stack_closure); |
138 mark_and_push_closure, follow_stack_closure); |
144 } |
139 } |