< prev index next >

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

Print this page
rev 47819 : imported patch 10.07.open.rebase_20171110.dcubed

*** 30,39 **** --- 30,40 ---- #include "gc/shared/workgroup.hpp" #include "runtime/atomic.hpp" #include "runtime/mutexLocker.hpp" #include "runtime/safepoint.hpp" #include "runtime/thread.inline.hpp" + #include "runtime/threadSMR.hpp" // Closure used for updating remembered sets and recording references that // point into the collection set while the mutator is running. // Assumed to be only executed concurrently with the mutator. Yields via // SuspendibleThreadSet after every card.
*** 317,327 **** 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 (JavaThread* t = Threads::first(); t; t = t->next()) { t->dirty_card_queue().reset(); } shared_dirty_card_queue()->reset(); } --- 318,328 ---- 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(); }
*** 336,346 **** // 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 (JavaThread* t = Threads::first(); t; t = t->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,347 ---- // 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 >