< prev index next >

src/share/vm/gc/shared/referenceProcessor.cpp

Print this page

        

*** 185,196 **** ReferenceProcessorStats ReferenceProcessor::process_discovered_references( BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor, ! GCTimer* gc_timer, ! GCId gc_id) { assert(!enqueuing_is_done(), "If here enqueuing should not be complete"); // Stop treating discovered references specially. disable_discovery(); --- 185,195 ---- ReferenceProcessorStats ReferenceProcessor::process_discovered_references( BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor, ! GCTimer* gc_timer) { assert(!enqueuing_is_done(), "If here enqueuing should not be complete"); // Stop treating discovered references specially. disable_discovery();
*** 207,246 **** bool trace_time = PrintGCDetails && PrintReferenceGC; // Soft references size_t soft_count = 0; { ! GCTraceTime tt("SoftReference", trace_time, false, gc_timer, gc_id); soft_count = process_discovered_reflist(_discoveredSoftRefs, _current_soft_ref_policy, true, is_alive, keep_alive, complete_gc, task_executor); } update_soft_ref_master_clock(); // Weak references size_t weak_count = 0; { ! GCTraceTime tt("WeakReference", trace_time, false, gc_timer, gc_id); weak_count = process_discovered_reflist(_discoveredWeakRefs, NULL, true, is_alive, keep_alive, complete_gc, task_executor); } // Final references size_t final_count = 0; { ! GCTraceTime tt("FinalReference", trace_time, false, gc_timer, gc_id); final_count = process_discovered_reflist(_discoveredFinalRefs, NULL, false, is_alive, keep_alive, complete_gc, task_executor); } // Phantom references size_t phantom_count = 0; { ! GCTraceTime tt("PhantomReference", trace_time, false, gc_timer, gc_id); phantom_count = process_discovered_reflist(_discoveredPhantomRefs, NULL, false, is_alive, keep_alive, complete_gc, task_executor); } --- 206,245 ---- bool trace_time = PrintGCDetails && PrintReferenceGC; // Soft references size_t soft_count = 0; { ! GCTraceTime tt("SoftReference", trace_time, false, gc_timer); soft_count = process_discovered_reflist(_discoveredSoftRefs, _current_soft_ref_policy, true, is_alive, keep_alive, complete_gc, task_executor); } update_soft_ref_master_clock(); // Weak references size_t weak_count = 0; { ! GCTraceTime tt("WeakReference", trace_time, false, gc_timer); weak_count = process_discovered_reflist(_discoveredWeakRefs, NULL, true, is_alive, keep_alive, complete_gc, task_executor); } // Final references size_t final_count = 0; { ! GCTraceTime tt("FinalReference", trace_time, false, gc_timer); final_count = process_discovered_reflist(_discoveredFinalRefs, NULL, false, is_alive, keep_alive, complete_gc, task_executor); } // Phantom references size_t phantom_count = 0; { ! GCTraceTime tt("PhantomReference", trace_time, false, gc_timer); phantom_count = process_discovered_reflist(_discoveredPhantomRefs, NULL, false, is_alive, keep_alive, complete_gc, task_executor); }
*** 259,269 **** // that is not how the JDK1.2 specification is. See #4126360. Native code can // thus use JNI weak references to circumvent the phantom references and // resurrect a "post-mortem" object. size_t jni_weak_ref_count = 0; { ! GCTraceTime tt("JNI Weak Reference", trace_time, false, gc_timer, gc_id); if (task_executor != NULL) { task_executor->set_single_threaded_mode(); } jni_weak_ref_count = process_phaseJNI(is_alive, keep_alive, complete_gc); --- 258,268 ---- // that is not how the JDK1.2 specification is. See #4126360. Native code can // thus use JNI weak references to circumvent the phantom references and // resurrect a "post-mortem" object. size_t jni_weak_ref_count = 0; { ! GCTraceTime tt("JNI Weak Reference", trace_time, false, gc_timer); if (task_executor != NULL) { task_executor->set_single_threaded_mode(); } jni_weak_ref_count = process_phaseJNI(is_alive, keep_alive, complete_gc);
*** 1154,1170 **** void ReferenceProcessor::preclean_discovered_references( BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, YieldClosure* yield, ! GCTimer* gc_timer, ! GCId gc_id) { // Soft references { GCTraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer, gc_id); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredSoftRefs[i], is_alive, --- 1153,1168 ---- void ReferenceProcessor::preclean_discovered_references( BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, YieldClosure* yield, ! GCTimer* gc_timer) { // Soft references { GCTraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredSoftRefs[i], is_alive,
*** 1173,1183 **** } // Weak references { GCTraceTime tt("Preclean WeakReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer, gc_id); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredWeakRefs[i], is_alive, --- 1171,1181 ---- } // Weak references { GCTraceTime tt("Preclean WeakReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredWeakRefs[i], is_alive,
*** 1186,1196 **** } // Final references { GCTraceTime tt("Preclean FinalReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer, gc_id); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredFinalRefs[i], is_alive, --- 1184,1194 ---- } // Final references { GCTraceTime tt("Preclean FinalReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredFinalRefs[i], is_alive,
*** 1199,1209 **** } // Phantom references { GCTraceTime tt("Preclean PhantomReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer, gc_id); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredPhantomRefs[i], is_alive, --- 1197,1207 ---- } // Phantom references { GCTraceTime tt("Preclean PhantomReferences", PrintGCDetails && PrintReferenceGC, ! false, gc_timer); for (uint i = 0; i < _max_num_q; i++) { if (yield->should_return()) { return; } preclean_discovered_reflist(_discoveredPhantomRefs[i], is_alive,
< prev index next >