< prev index next >
src/share/vm/gc/g1/g1CollectedHeap.cpp
Print this page
rev 10513 : 8149343: assert(rp->num_q() == no_of_gc_workers) failed: sanity
*** 4289,4299 ****
_pss(per_thread_states),
_queues(task_queues),
_workers(workers),
_active_workers(n_workers)
{
! assert(n_workers > 0, "shouldn't call this otherwise");
}
// Executes the given task using concurrent marking worker threads.
virtual void execute(ProcessTask& task);
virtual void execute(EnqueueTask& task);
--- 4289,4299 ----
_pss(per_thread_states),
_queues(task_queues),
_workers(workers),
_active_workers(n_workers)
{
! g1h->ref_processor_stw()->set_active_mt_degree(n_workers);
}
// Executes the given task using concurrent marking worker threads.
virtual void execute(ProcessTask& task);
virtual void execute(EnqueueTask& task);
*** 4410,4420 ****
_g1h(g1h),
_pss(per_thread_states),
_queues(task_queues),
_terminator(workers, _queues),
_n_workers(workers)
! { }
void work(uint worker_id) {
G1GCParPhaseTimesTracker x(_g1h->g1_policy()->phase_times(), G1GCPhaseTimes::PreserveCMReferents, worker_id);
ResourceMark rm;
--- 4410,4422 ----
_g1h(g1h),
_pss(per_thread_states),
_queues(task_queues),
_terminator(workers, _queues),
_n_workers(workers)
! {
! g1h->ref_processor_cm()->set_active_mt_degree(workers);
! }
void work(uint worker_id) {
G1GCParPhaseTimesTracker x(_g1h->g1_policy()->phase_times(), G1GCPhaseTimes::PreserveCMReferents, worker_id);
ResourceMark rm;
*** 4553,4564 ****
_gc_timer_stw);
} else {
uint no_of_gc_workers = workers()->active_workers();
// Parallel reference processing
! assert(rp->num_q() == no_of_gc_workers, "sanity");
! assert(no_of_gc_workers <= rp->max_num_q(), "sanity");
G1STWRefProcTaskExecutor par_task_executor(this, per_thread_states, workers(), _task_queues, no_of_gc_workers);
stats = rp->process_discovered_references(&is_alive,
&keep_alive,
&drain_queue,
--- 4555,4567 ----
_gc_timer_stw);
} else {
uint no_of_gc_workers = workers()->active_workers();
// Parallel reference processing
! assert(no_of_gc_workers <= rp->max_num_q(),
! "Mismatch between the number of GC workers %u and the maximum number of Reference process queues %u",
! no_of_gc_workers, rp->max_num_q());
G1STWRefProcTaskExecutor par_task_executor(this, per_thread_states, workers(), _task_queues, no_of_gc_workers);
stats = rp->process_discovered_references(&is_alive,
&keep_alive,
&drain_queue,
*** 4590,4601 ****
} else {
// Parallel reference enqueueing
uint n_workers = workers()->active_workers();
! assert(rp->num_q() == n_workers, "sanity");
! assert(n_workers <= rp->max_num_q(), "sanity");
G1STWRefProcTaskExecutor par_task_executor(this, per_thread_states, workers(), _task_queues, n_workers);
rp->enqueue_discovered_references(&par_task_executor);
}
--- 4593,4605 ----
} else {
// Parallel reference enqueueing
uint n_workers = workers()->active_workers();
! assert(n_workers <= rp->max_num_q(),
! "Mismatch between the number of GC workers %u and the maximum number of Reference process queues %u",
! n_workers, rp->max_num_q());
G1STWRefProcTaskExecutor par_task_executor(this, per_thread_states, workers(), _task_queues, n_workers);
rp->enqueue_discovered_references(&par_task_executor);
}
< prev index next >