< prev index next >

src/share/vm/runtime/safepoint.cpp

Print this page

        

*** 54,63 **** --- 54,64 ---- #include "runtime/thread.inline.hpp" #include "services/runtimeService.hpp" #include "utilities/events.hpp" #include "utilities/macros.hpp" #if INCLUDE_ALL_GCS + #include "gc/shenandoah/shenandoahConcurrentThread.hpp" #include "gc/cms/concurrentMarkSweepThread.hpp" #include "gc/g1/suspendibleThreadSet.hpp" #endif // INCLUDE_ALL_GCS #ifdef COMPILER1 #include "c1/c1_globals.hpp"
*** 93,103 **** --- 94,107 ---- // 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(); + } else if (UseShenandoahGC) { + ShenandoahConcurrentThread::safepoint_synchronize(); } + #endif // INCLUDE_ALL_GCS // By getting the Threads_lock, we assure that no threads are about to start or // exit. It is released again in SafepointSynchronize::end(). Threads_lock->lock();
*** 467,476 **** --- 471,482 ---- // If there are any concurrent GC threads resume them. if (UseConcMarkSweepGC) { ConcurrentMarkSweepThread::desynchronize(false); } else if (UseG1GC) { SuspendibleThreadSet::desynchronize(); + } else if (UseShenandoahGC) { + ShenandoahConcurrentThread::safepoint_desynchronize(); } #endif // INCLUDE_ALL_GCS // record this time so VMThread can keep track how much time has elapsed // since last safepoint. _end_of_last_safepoint = os::javaTimeMillis();
*** 966,975 **** --- 972,984 ---- if (return_oop) { // The oop result has been saved on the stack together with all // the other registers. In order to preserve it over GCs we need // to keep it in a handle. oop result = caller_fr.saved_oop_result(&map); + if (ShenandoahVerifyReadsToFromSpace) { + result = oopDesc::bs()->read_barrier(result); + } assert(result == NULL || result->is_oop(), "must be oop"); return_value = Handle(thread(), result); assert(Universe::heap()->is_in_or_null(result), "must be heap pointer"); }
< prev index next >