< prev index next >

src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page




  57 #include "gc/shared/referencePolicy.hpp"
  58 #include "gc/shared/space.inline.hpp"
  59 #include "gc/shared/strongRootsScope.hpp"
  60 #include "gc/shared/taskqueue.inline.hpp"
  61 #include "gc/shared/weakProcessor.hpp"
  62 #include "logging/log.hpp"
  63 #include "logging/logStream.hpp"
  64 #include "memory/allocation.hpp"
  65 #include "memory/binaryTreeDictionary.inline.hpp"
  66 #include "memory/iterator.inline.hpp"
  67 #include "memory/padded.hpp"
  68 #include "memory/resourceArea.hpp"
  69 #include "oops/access.inline.hpp"
  70 #include "oops/oop.inline.hpp"
  71 #include "prims/jvmtiExport.hpp"
  72 #include "runtime/atomic.hpp"
  73 #include "runtime/flags/flagSetting.hpp"
  74 #include "runtime/globals_extension.hpp"
  75 #include "runtime/handles.inline.hpp"
  76 #include "runtime/java.hpp"
  77 #include "runtime/orderAccess.inline.hpp"
  78 #include "runtime/timer.hpp"
  79 #include "runtime/vmThread.hpp"
  80 #include "services/memoryService.hpp"
  81 #include "services/runtimeService.hpp"
  82 #include "utilities/align.hpp"
  83 #include "utilities/stack.inline.hpp"
  84 
  85 // statics
  86 CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
  87 bool CMSCollector::_full_gc_requested = false;
  88 GCCause::Cause CMSCollector::_full_gc_cause = GCCause::_no_gc;
  89 
  90 //////////////////////////////////////////////////////////////////
  91 // In support of CMS/VM thread synchronization
  92 //////////////////////////////////////////////////////////////////
  93 // We split use of the CGC_lock into 2 "levels".
  94 // The low-level locking is of the usual CGC_lock monitor. We introduce
  95 // a higher level "token" (hereafter "CMS token") built on top of the
  96 // low level monitor (hereafter "CGC lock").
  97 // The token-passing protocol gives priority to the VM thread. The




  57 #include "gc/shared/referencePolicy.hpp"
  58 #include "gc/shared/space.inline.hpp"
  59 #include "gc/shared/strongRootsScope.hpp"
  60 #include "gc/shared/taskqueue.inline.hpp"
  61 #include "gc/shared/weakProcessor.hpp"
  62 #include "logging/log.hpp"
  63 #include "logging/logStream.hpp"
  64 #include "memory/allocation.hpp"
  65 #include "memory/binaryTreeDictionary.inline.hpp"
  66 #include "memory/iterator.inline.hpp"
  67 #include "memory/padded.hpp"
  68 #include "memory/resourceArea.hpp"
  69 #include "oops/access.inline.hpp"
  70 #include "oops/oop.inline.hpp"
  71 #include "prims/jvmtiExport.hpp"
  72 #include "runtime/atomic.hpp"
  73 #include "runtime/flags/flagSetting.hpp"
  74 #include "runtime/globals_extension.hpp"
  75 #include "runtime/handles.inline.hpp"
  76 #include "runtime/java.hpp"
  77 #include "runtime/orderAccess.hpp"
  78 #include "runtime/timer.hpp"
  79 #include "runtime/vmThread.hpp"
  80 #include "services/memoryService.hpp"
  81 #include "services/runtimeService.hpp"
  82 #include "utilities/align.hpp"
  83 #include "utilities/stack.inline.hpp"
  84 
  85 // statics
  86 CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL;
  87 bool CMSCollector::_full_gc_requested = false;
  88 GCCause::Cause CMSCollector::_full_gc_cause = GCCause::_no_gc;
  89 
  90 //////////////////////////////////////////////////////////////////
  91 // In support of CMS/VM thread synchronization
  92 //////////////////////////////////////////////////////////////////
  93 // We split use of the CGC_lock into 2 "levels".
  94 // The low-level locking is of the usual CGC_lock monitor. We introduce
  95 // a higher level "token" (hereafter "CMS token") built on top of the
  96 // low level monitor (hereafter "CGC lock").
  97 // The token-passing protocol gives priority to the VM thread. The


< prev index next >