src/share/vm/gc_implementation/g1/ptrQueue.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8024760 Sdiff src/share/vm/gc_implementation/g1

src/share/vm/gc_implementation/g1/ptrQueue.hpp

Print this page




  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP
  26 #define SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 #include "utilities/sizes.hpp"
  30 
  31 // There are various techniques that require threads to be able to log
  32 // addresses.  For example, a generational write barrier might log
  33 // the addresses of modified old-generation objects.  This type supports
  34 // this operation.
  35 
  36 // The definition of placement operator new(size_t, void*) in the <new>.
  37 #include <new>
  38 
  39 class PtrQueueSet;
  40 class PtrQueue VALUE_OBJ_CLASS_SPEC {

  41 
  42 protected:
  43   // The ptr queue set to which this queue belongs.
  44   PtrQueueSet* _qset;
  45 
  46   // Whether updates should be logged.
  47   bool _active;
  48 
  49   // The buffer.
  50   void** _buf;
  51   // The index at which an object was last enqueued.  Starts at "_sz"
  52   // (indicating an empty buffer) and goes towards zero.
  53   size_t _index;
  54 
  55   // The size of the buffer.
  56   size_t _sz;
  57 
  58   // If true, the queue is permanent, and doesn't need to deallocate
  59   // its buffer in the destructor (since that obtains a lock which may not
  60   // be legally locked by then.




  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP
  26 #define SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 #include "utilities/sizes.hpp"
  30 
  31 // There are various techniques that require threads to be able to log
  32 // addresses.  For example, a generational write barrier might log
  33 // the addresses of modified old-generation objects.  This type supports
  34 // this operation.
  35 
  36 // The definition of placement operator new(size_t, void*) in the <new>.
  37 #include <new>
  38 
  39 class PtrQueueSet;
  40 class PtrQueue VALUE_OBJ_CLASS_SPEC {
  41   friend class VMStructs;
  42 
  43 protected:
  44   // The ptr queue set to which this queue belongs.
  45   PtrQueueSet* _qset;
  46 
  47   // Whether updates should be logged.
  48   bool _active;
  49 
  50   // The buffer.
  51   void** _buf;
  52   // The index at which an object was last enqueued.  Starts at "_sz"
  53   // (indicating an empty buffer) and goes towards zero.
  54   size_t _index;
  55 
  56   // The size of the buffer.
  57   size_t _sz;
  58 
  59   // If true, the queue is permanent, and doesn't need to deallocate
  60   // its buffer in the destructor (since that obtains a lock which may not
  61   // be legally locked by then.


src/share/vm/gc_implementation/g1/ptrQueue.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File