< prev index next >

src/share/vm/gc_implementation/g1/g1StringDedup.cpp

Print this page




 136   virtual void work(uint worker_id) {
 137     {
 138       G1GCParPhaseTimesTracker x(_phase_times, G1GCPhaseTimes::StringDedupQueueFixup, worker_id);
 139       G1StringDedupQueue::unlink_or_oops_do(&_cl);
 140     }
 141     {
 142       G1GCParPhaseTimesTracker x(_phase_times, G1GCPhaseTimes::StringDedupTableFixup, worker_id);
 143       G1StringDedupTable::unlink_or_oops_do(&_cl, worker_id);
 144     }
 145   }
 146 };
 147 
 148 void G1StringDedup::unlink_or_oops_do(BoolObjectClosure* is_alive,
 149                                       OopClosure* keep_alive,
 150                                       bool allow_resize_and_rehash,
 151                                       G1GCPhaseTimes* phase_times) {
 152   assert(is_enabled(), "String deduplication not enabled");
 153 
 154   G1StringDedupUnlinkOrOopsDoTask task(is_alive, keep_alive, allow_resize_and_rehash, phase_times);
 155   G1CollectedHeap* g1h = G1CollectedHeap::heap();
 156   g1h->set_par_threads();
 157   g1h->workers()->run_task(&task);
 158   g1h->set_par_threads(0);
 159 }
 160 
 161 void G1StringDedup::threads_do(ThreadClosure* tc) {
 162   assert(is_enabled(), "String deduplication not enabled");
 163   tc->do_thread(G1StringDedupThread::thread());
 164 }
 165 
 166 void G1StringDedup::print_worker_threads_on(outputStream* st) {
 167   assert(is_enabled(), "String deduplication not enabled");
 168   G1StringDedupThread::thread()->print_on(st);
 169   st->cr();
 170 }
 171 
 172 void G1StringDedup::verify() {
 173   assert(is_enabled(), "String deduplication not enabled");
 174   G1StringDedupQueue::verify();
 175   G1StringDedupTable::verify();
 176 }
 177 
 178 G1StringDedupUnlinkOrOopsDoClosure::G1StringDedupUnlinkOrOopsDoClosure(BoolObjectClosure* is_alive,




 136   virtual void work(uint worker_id) {
 137     {
 138       G1GCParPhaseTimesTracker x(_phase_times, G1GCPhaseTimes::StringDedupQueueFixup, worker_id);
 139       G1StringDedupQueue::unlink_or_oops_do(&_cl);
 140     }
 141     {
 142       G1GCParPhaseTimesTracker x(_phase_times, G1GCPhaseTimes::StringDedupTableFixup, worker_id);
 143       G1StringDedupTable::unlink_or_oops_do(&_cl, worker_id);
 144     }
 145   }
 146 };
 147 
 148 void G1StringDedup::unlink_or_oops_do(BoolObjectClosure* is_alive,
 149                                       OopClosure* keep_alive,
 150                                       bool allow_resize_and_rehash,
 151                                       G1GCPhaseTimes* phase_times) {
 152   assert(is_enabled(), "String deduplication not enabled");
 153 
 154   G1StringDedupUnlinkOrOopsDoTask task(is_alive, keep_alive, allow_resize_and_rehash, phase_times);
 155   G1CollectedHeap* g1h = G1CollectedHeap::heap();

 156   g1h->workers()->run_task(&task);

 157 }
 158 
 159 void G1StringDedup::threads_do(ThreadClosure* tc) {
 160   assert(is_enabled(), "String deduplication not enabled");
 161   tc->do_thread(G1StringDedupThread::thread());
 162 }
 163 
 164 void G1StringDedup::print_worker_threads_on(outputStream* st) {
 165   assert(is_enabled(), "String deduplication not enabled");
 166   G1StringDedupThread::thread()->print_on(st);
 167   st->cr();
 168 }
 169 
 170 void G1StringDedup::verify() {
 171   assert(is_enabled(), "String deduplication not enabled");
 172   G1StringDedupQueue::verify();
 173   G1StringDedupTable::verify();
 174 }
 175 
 176 G1StringDedupUnlinkOrOopsDoClosure::G1StringDedupUnlinkOrOopsDoClosure(BoolObjectClosure* is_alive,


< prev index next >