hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp
changeset 28163 322d55d167be
parent 27880 afb974a04396
child 29798 451c73fdf690
equal deleted inserted replaced
28023:a4075664328d 28163:322d55d167be
   398     tty->print_cr("GCTaskManager::initialize: workers: %u", workers());
   398     tty->print_cr("GCTaskManager::initialize: workers: %u", workers());
   399   }
   399   }
   400   assert(workers() != 0, "no workers");
   400   assert(workers() != 0, "no workers");
   401   _monitor = new Monitor(Mutex::barrier,                // rank
   401   _monitor = new Monitor(Mutex::barrier,                // rank
   402                          "GCTaskManager monitor",       // name
   402                          "GCTaskManager monitor",       // name
   403                          Mutex::_allow_vm_block_flag);  // allow_vm_block
   403                          Mutex::_allow_vm_block_flag,   // allow_vm_block
       
   404                          Monitor::_safepoint_check_never);
   404   // The queue for the GCTaskManager must be a CHeapObj.
   405   // The queue for the GCTaskManager must be a CHeapObj.
   405   GCTaskQueue* unsynchronized_queue = GCTaskQueue::create_on_c_heap();
   406   GCTaskQueue* unsynchronized_queue = GCTaskQueue::create_on_c_heap();
   406   _queue = SynchronizedGCTaskQueue::create(unsynchronized_queue, lock());
   407   _queue = SynchronizedGCTaskQueue::create(unsynchronized_queue, lock());
   407   _noop_task = NoopGCTask::create_on_c_heap();
   408   _noop_task = NoopGCTask::create_on_c_heap();
   408   _idle_inactive_task = WaitForBarrierGCTask::create_on_c_heap();
   409   _idle_inactive_task = WaitForBarrierGCTask::create_on_c_heap();
  1123     if (! freelist()->is_empty()) {
  1124     if (! freelist()->is_empty()) {
  1124       result = freelist()->pop();
  1125       result = freelist()->pop();
  1125     } else {
  1126     } else {
  1126       result = new Monitor(Mutex::barrier,                  // rank
  1127       result = new Monitor(Mutex::barrier,                  // rank
  1127                            "MonitorSupply monitor",         // name
  1128                            "MonitorSupply monitor",         // name
  1128                            Mutex::_allow_vm_block_flag);    // allow_vm_block
  1129                            Mutex::_allow_vm_block_flag,     // allow_vm_block
       
  1130                            Monitor::_safepoint_check_never);
  1129     }
  1131     }
  1130     guarantee(result != NULL, "shouldn't return NULL");
  1132     guarantee(result != NULL, "shouldn't return NULL");
  1131     assert(!result->is_locked(), "shouldn't be locked");
  1133     assert(!result->is_locked(), "shouldn't be locked");
  1132     // release lock().
  1134     // release lock().
  1133   }
  1135   }