< prev index next >

src/hotspot/share/gc/shared/collectedHeap.cpp

Print this page

        

*** 474,512 **** // aren't going to interfere -- for instance, this is permissible // if we are still single-threaded and have either not yet // started allocating (nothing much to verify) or we have // started allocating but are now a full-fledged JavaThread // (and have thus made our TLAB's) available for filling. ! assert(SafepointSynchronize::is_at_safepoint() || ! !is_init_completed(), "Should only be called at a safepoint or at start-up" " otherwise concurrent mutator activity may make heap " " unparsable again"); ! const bool use_tlab = UseTLAB; // The main thread starts allocating via a TLAB even before it // has added itself to the threads list at vm boot-up. JavaThreadIteratorWithHandle jtiwh; ! assert(!use_tlab || jtiwh.length() > 0, "Attempt to fill tlabs before main thread has been added" " to threads list is doomed to failure!"); BarrierSet *bs = BarrierSet::barrier_set(); for (; JavaThread *thread = jtiwh.next(); ) { ! if (use_tlab) thread->tlab().make_parsable(retire_tlabs); bs->make_parsable(thread); } } - void CollectedHeap::accumulate_statistics_all_tlabs() { - if (UseTLAB) { - assert(SafepointSynchronize::is_at_safepoint() || - !is_init_completed(), - "should only accumulate statistics on tlabs at safepoint"); - - ThreadLocalAllocBuffer::accumulate_statistics_before_gc(); - } - } - void CollectedHeap::resize_all_tlabs() { if (UseTLAB) { assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(), "should only resize tlabs at safepoint"); --- 474,508 ---- // aren't going to interfere -- for instance, this is permissible // if we are still single-threaded and have either not yet // started allocating (nothing much to verify) or we have // started allocating but are now a full-fledged JavaThread // (and have thus made our TLAB's) available for filling. ! assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(), "Should only be called at a safepoint or at start-up" " otherwise concurrent mutator activity may make heap " " unparsable again"); ! ! if (UseTLAB && retire_tlabs) { ! // Accumulate statistics before retiring ! ThreadLocalAllocBuffer::accumulate_statistics_before_gc(); ! } ! // The main thread starts allocating via a TLAB even before it // has added itself to the threads list at vm boot-up. JavaThreadIteratorWithHandle jtiwh; ! assert(jtiwh.length() > 0, "Attempt to fill tlabs before main thread has been added" " to threads list is doomed to failure!"); BarrierSet *bs = BarrierSet::barrier_set(); for (; JavaThread *thread = jtiwh.next(); ) { ! if (UseTLAB) { ! thread->tlab().make_parsable(retire_tlabs); ! } bs->make_parsable(thread); } } void CollectedHeap::resize_all_tlabs() { if (UseTLAB) { assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(), "should only resize tlabs at safepoint");
< prev index next >