< prev index next >
src/hotspot/share/gc/g1/g1ParScanThreadState.cpp
Print this page
rev 49680 : imported patch 6672778-partial-queue-trimming
rev 49681 : imported patch 6672778-refactoring
rev 49682 : [mq]: 6672778-stefanj-review
*** 43,61 ****
_dcq(&g1h->dirty_card_queue_set()),
_ct(g1h->card_table()),
_closures(NULL),
_plab_allocator(NULL),
_age_table(false),
- // _dest
_tenuring_threshold(g1h->g1_policy()->tenuring_threshold()),
_scanner(g1h, this),
_hash_seed(17),
_worker_id(worker_id),
_stack_drain_upper_threshold(GCDrainStackTargetSize * 2 + 1),
_stack_drain_lower_threshold(GCDrainStackTargetSize),
- // _surviving_young_words(NULL),
- // _surviving_young_words_base(NULL),
_trim_ticks(),
_old_gen_is_full(false)
{
// we allocate G1YoungSurvRateNumRegions plus one entries, since
// we "sacrifice" entry 0 to keep track of surviving bytes for
--- 43,58 ----
*** 143,162 ****
#endif // ASSERT
void G1ParScanThreadState::trim_queue() {
StarTask ref;
do {
! // Drain the overflow stack first, so other threads can steal.
! while (_refs->pop_overflow(ref)) {
! if (!_refs->try_push_to_taskqueue(ref)) {
! dispatch_reference(ref);
! }
! }
!
! while (_refs->pop_local(ref)) {
! dispatch_reference(ref);
! }
} while (!_refs->is_empty());
}
HeapWord* G1ParScanThreadState::allocate_in_next_plab(InCSetState const state,
InCSetState* dest,
--- 140,151 ----
#endif // ASSERT
void G1ParScanThreadState::trim_queue() {
StarTask ref;
do {
! // Fully drain the queue.
! trim_queue_to_threshold(0);
} while (!_refs->is_empty());
}
HeapWord* G1ParScanThreadState::allocate_in_next_plab(InCSetState const state,
InCSetState* dest,
< prev index next >