--- old/src/share/vm/runtime/safepoint.cpp 2017-04-25 16:45:52.135172506 +0200 +++ new/src/share/vm/runtime/safepoint.cpp 2017-04-25 16:45:52.019172510 +0200 @@ -60,10 +60,6 @@ #include "trace/traceMacros.hpp" #include "utilities/events.hpp" #include "utilities/macros.hpp" -#if INCLUDE_ALL_GCS -#include "gc/cms/concurrentMarkSweepThread.hpp" -#include "gc/g1/suspendibleThreadSet.hpp" -#endif // INCLUDE_ALL_GCS #ifdef COMPILER1 #include "c1/c1_globals.hpp" #endif @@ -91,15 +87,7 @@ _ts_of_current_safepoint = tty->time_stamp().seconds(); } -#if INCLUDE_ALL_GCS - if (UseConcMarkSweepGC) { - // In the future we should investigate whether CMS can use the - // more-general mechanism below. DLD (01/05). - ConcurrentMarkSweepThread::synchronize(false); - } else if (UseG1GC) { - SuspendibleThreadSet::synchronize(); - } -#endif // INCLUDE_ALL_GCS + Universe::heap()->safepoint_synchronize_begin(); // By getting the Threads_lock, we assure that no threads are about to start or // exit. It is released again in SafepointSynchronize::end(). @@ -508,14 +496,7 @@ Threads_lock->unlock(); } -#if INCLUDE_ALL_GCS - // If there are any concurrent GC threads resume them. - if (UseConcMarkSweepGC) { - ConcurrentMarkSweepThread::desynchronize(false); - } else if (UseG1GC) { - SuspendibleThreadSet::desynchronize(); - } -#endif // INCLUDE_ALL_GCS + Universe::heap()->safepoint_synchronize_end(); // record this time so VMThread can keep track how much time has elapsed // since last safepoint. _end_of_last_safepoint = os::javaTimeMillis();