< prev index next >

src/share/vm/gc/g1/g1CollectedHeap.cpp

Print this page
rev 10368 : 8149343: assert(rp->num_q() == no_of_gc_workers) failed: sanity

*** 4273,4283 **** _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); --- 4273,4283 ---- _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);
*** 4394,4404 **** _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; --- 4394,4406 ---- _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;
*** 4537,4548 **** _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, --- 4539,4551 ---- _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,
*** 4574,4585 **** } 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); } --- 4577,4589 ---- } 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 >