< prev index next >

src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp

Print this page




  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/systemDictionary.hpp"
  27 #include "code/codeCache.hpp"
  28 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
  29 #include "gc_implementation/parallelScavenge/pcTasks.hpp"
  30 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp"
  31 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp"
  32 #include "gc_implementation/shared/gcTimer.hpp"
  33 #include "gc_implementation/shared/gcTraceTime.hpp"
  34 #include "gc_interface/collectedHeap.hpp"
  35 #include "memory/universe.hpp"
  36 #include "oops/objArrayKlass.inline.hpp"
  37 #include "oops/oop.inline.hpp"
  38 #include "prims/jvmtiExport.hpp"
  39 #include "runtime/fprofiler.hpp"
  40 #include "runtime/jniHandles.hpp"
  41 #include "runtime/thread.hpp"
  42 #include "runtime/vmThread.hpp"
  43 #include "services/management.hpp"

  44 
  45 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
  46 
  47 //
  48 // ThreadRootsMarkingTask
  49 //
  50 
  51 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
  52   assert(Universe::heap()->is_gc_active(), "called outside gc");
  53 
  54   ResourceMark rm;
  55 
  56   NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask",
  57     PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
  58   ParCompactionManager* cm =
  59     ParCompactionManager::gc_thread_compaction_manager(which);
  60 
  61   PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
  62   CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
  63   MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);




  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/systemDictionary.hpp"
  27 #include "code/codeCache.hpp"
  28 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
  29 #include "gc_implementation/parallelScavenge/pcTasks.hpp"
  30 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp"
  31 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp"
  32 #include "gc_implementation/shared/gcTimer.hpp"
  33 #include "gc_implementation/shared/gcTraceTime.hpp"
  34 #include "gc_interface/collectedHeap.hpp"
  35 #include "memory/universe.hpp"
  36 #include "oops/objArrayKlass.inline.hpp"
  37 #include "oops/oop.inline.hpp"
  38 #include "prims/jvmtiExport.hpp"
  39 #include "runtime/fprofiler.hpp"
  40 #include "runtime/jniHandles.hpp"
  41 #include "runtime/thread.hpp"
  42 #include "runtime/vmThread.hpp"
  43 #include "services/management.hpp"
  44 #include "utilities/stack.inline.hpp"
  45 
  46 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
  47 
  48 //
  49 // ThreadRootsMarkingTask
  50 //
  51 
  52 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
  53   assert(Universe::heap()->is_gc_active(), "called outside gc");
  54 
  55   ResourceMark rm;
  56 
  57   NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask",
  58     PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
  59   ParCompactionManager* cm =
  60     ParCompactionManager::gc_thread_compaction_manager(which);
  61 
  62   PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
  63   CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
  64   MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);


< prev index next >