73 # include "nativeInst_ppc.hpp" |
73 # include "nativeInst_ppc.hpp" |
74 # include "vmreg_ppc.inline.hpp" |
74 # include "vmreg_ppc.inline.hpp" |
75 #endif |
75 #endif |
76 #if INCLUDE_ALL_GCS |
76 #if INCLUDE_ALL_GCS |
77 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" |
77 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" |
78 #include "gc_implementation/shared/concurrentGCThread.hpp" |
78 #include "gc_implementation/shared/suspendibleThreadSet.hpp" |
79 #endif // INCLUDE_ALL_GCS |
79 #endif // INCLUDE_ALL_GCS |
80 #ifdef COMPILER1 |
80 #ifdef COMPILER1 |
81 #include "c1/c1_globals.hpp" |
81 #include "c1/c1_globals.hpp" |
82 #endif |
82 #endif |
83 |
83 |
110 if (UseConcMarkSweepGC) { |
110 if (UseConcMarkSweepGC) { |
111 // In the future we should investigate whether CMS can use the |
111 // In the future we should investigate whether CMS can use the |
112 // more-general mechanism below. DLD (01/05). |
112 // more-general mechanism below. DLD (01/05). |
113 ConcurrentMarkSweepThread::synchronize(false); |
113 ConcurrentMarkSweepThread::synchronize(false); |
114 } else if (UseG1GC) { |
114 } else if (UseG1GC) { |
115 ConcurrentGCThread::safepoint_synchronize(); |
115 SuspendibleThreadSet::synchronize(); |
116 } |
116 } |
117 #endif // INCLUDE_ALL_GCS |
117 #endif // INCLUDE_ALL_GCS |
118 |
118 |
119 // By getting the Threads_lock, we assure that no threads are about to start or |
119 // By getting the Threads_lock, we assure that no threads are about to start or |
120 // exit. It is released again in SafepointSynchronize::end(). |
120 // exit. It is released again in SafepointSynchronize::end(). |
486 #if INCLUDE_ALL_GCS |
486 #if INCLUDE_ALL_GCS |
487 // If there are any concurrent GC threads resume them. |
487 // If there are any concurrent GC threads resume them. |
488 if (UseConcMarkSweepGC) { |
488 if (UseConcMarkSweepGC) { |
489 ConcurrentMarkSweepThread::desynchronize(false); |
489 ConcurrentMarkSweepThread::desynchronize(false); |
490 } else if (UseG1GC) { |
490 } else if (UseG1GC) { |
491 ConcurrentGCThread::safepoint_desynchronize(); |
491 SuspendibleThreadSet::desynchronize(); |
492 } |
492 } |
493 #endif // INCLUDE_ALL_GCS |
493 #endif // INCLUDE_ALL_GCS |
494 // record this time so VMThread can keep track how much time has elasped |
494 // record this time so VMThread can keep track how much time has elasped |
495 // since last safepoint. |
495 // since last safepoint. |
496 _end_of_last_safepoint = os::javaTimeMillis(); |
496 _end_of_last_safepoint = os::javaTimeMillis(); |