< prev index next >

src/hotspot/share/gc/g1/dirtyCardQueue.cpp

Print this page
rev 47287 : Port 09.17.Thread_SMR_logging_update from JDK9 to JDK10
rev 47289 : eosterlund, stefank CR - refactor code into threadSMR.cpp and threadSMR.hpp
rev 47292 : stefank, coleenp CR - refactor most JavaThreadIterator usage to use JavaThreadIteratorWithHandle.

*** 318,334 **** void DirtyCardQueueSet::abandon_logs() { assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); clear(); // Since abandon is done only at safepoints, we can safely manipulate // these queues. ! { ! ThreadsListHandle tlh; ! JavaThreadIterator jti(tlh.list()); ! for (JavaThread* t = jti.first(); t != NULL; t = jti.next()) { t->dirty_card_queue().reset(); } - } shared_dirty_card_queue()->reset(); } void DirtyCardQueueSet::concatenate_log(DirtyCardQueue& dcq) { if (!dcq.is_empty()) { --- 318,330 ---- void DirtyCardQueueSet::abandon_logs() { assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); clear(); // Since abandon is done only at safepoints, we can safely manipulate // these queues. ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { t->dirty_card_queue().reset(); } shared_dirty_card_queue()->reset(); } void DirtyCardQueueSet::concatenate_log(DirtyCardQueue& dcq) { if (!dcq.is_empty()) {
*** 341,356 **** // the global list of logs. Temporarily turn off the limit on the number // of outstanding buffers. int save_max_completed_queue = _max_completed_queue; _max_completed_queue = max_jint; assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); ! { ! ThreadsListHandle tlh; ! JavaThreadIterator jti(tlh.list()); ! for (JavaThread* t = jti.first(); t != NULL; t = jti.next()) { concatenate_log(t->dirty_card_queue()); } - } concatenate_log(_shared_dirty_card_queue); // Restore the completed buffer queue limit. _max_completed_queue = save_max_completed_queue; } --- 337,348 ---- // the global list of logs. Temporarily turn off the limit on the number // of outstanding buffers. int save_max_completed_queue = _max_completed_queue; _max_completed_queue = max_jint; assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); ! for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { concatenate_log(t->dirty_card_queue()); } concatenate_log(_shared_dirty_card_queue); // Restore the completed buffer queue limit. _max_completed_queue = save_max_completed_queue; }
< prev index next >