--- old/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp 2014-12-10 11:28:17.038060000 -0500 +++ new/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp 2014-12-10 11:28:13.371370000 -0500 @@ -400,7 +400,8 @@ assert(workers() != 0, "no workers"); _monitor = new Monitor(Mutex::barrier, // rank "GCTaskManager monitor", // name - Mutex::_allow_vm_block_flag); // allow_vm_block + Mutex::_allow_vm_block_flag, // allow_vm_block + Monitor::_safepoint_check_never); // The queue for the GCTaskManager must be a CHeapObj. GCTaskQueue* unsynchronized_queue = GCTaskQueue::create_on_c_heap(); _queue = SynchronizedGCTaskQueue::create(unsynchronized_queue, lock()); @@ -1125,7 +1126,8 @@ } else { result = new Monitor(Mutex::barrier, // rank "MonitorSupply monitor", // name - Mutex::_allow_vm_block_flag); // allow_vm_block + Mutex::_allow_vm_block_flag, // allow_vm_block + Monitor::_safepoint_check_never); } guarantee(result != NULL, "shouldn't return NULL"); assert(!result->is_locked(), "shouldn't be locked");