< prev index next >

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

Print this page

        

@@ -1543,11 +1543,15 @@
   // We need to reset the concurrency level before each
   // proxy task execution, so that the termination protocol
   // and overflow handling in G1CMTask::do_marking_step() knows
   // how many workers to wait for.
   _cm->set_concurrency(ergo_workers);
+  if (ergo_workers == 1) {
+    proc_task_proxy.work(0);
+  } else {
   _workers->run_task(&proc_task_proxy, ergo_workers);
+  }
 }
 
 void G1ConcurrentMark::weak_refs_work(bool clear_all_soft_refs) {
   ResourceMark rm;
   HandleMark   hm;
< prev index next >