78 79 void ZBarrierSet::on_thread_create(Thread* thread) { 80 // Create thread local data 81 ZThreadLocalData::create(thread); 82 } 83 84 void ZBarrierSet::on_thread_destroy(Thread* thread) { 85 // Destroy thread local data 86 ZThreadLocalData::destroy(thread); 87 } 88 89 void ZBarrierSet::on_thread_attach(Thread* thread) { 90 // Set thread local address bad mask 91 ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask); 92 } 93 94 void ZBarrierSet::on_thread_detach(Thread* thread) { 95 // Flush and free any remaining mark stacks 96 ZHeap::heap()->mark_flush_and_free(thread); 97 } | 78 79 void ZBarrierSet::on_thread_create(Thread* thread) { 80 // Create thread local data 81 ZThreadLocalData::create(thread); 82 } 83 84 void ZBarrierSet::on_thread_destroy(Thread* thread) { 85 // Destroy thread local data 86 ZThreadLocalData::destroy(thread); 87 } 88 89 void ZBarrierSet::on_thread_attach(Thread* thread) { 90 // Set thread local address bad mask 91 ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask); 92 } 93 94 void ZBarrierSet::on_thread_detach(Thread* thread) { 95 // Flush and free any remaining mark stacks 96 ZHeap::heap()->mark_flush_and_free(thread); 97 } 98 99 void ZBarrierSet::print_on(outputStream* st) const { 100 st->print_cr("ZBarrierSet"); 101 } |