src/hotspot/share/gc/shared/ptrQueue.hpp
changeset 55752 8ae33203d600
parent 55498 e64383344f14
child 57975 a333fdeb8de0
equal deleted inserted replaced
55751:014decdb5086 55752:8ae33203d600
   294 // In particular, the individual queues allocate buffers from this shared
   294 // In particular, the individual queues allocate buffers from this shared
   295 // set, and return completed buffers to the set.
   295 // set, and return completed buffers to the set.
   296 class PtrQueueSet {
   296 class PtrQueueSet {
   297   BufferNode::Allocator* _allocator;
   297   BufferNode::Allocator* _allocator;
   298 
   298 
       
   299   // Noncopyable - not defined.
       
   300   PtrQueueSet(const PtrQueueSet&);
       
   301   PtrQueueSet& operator=(const PtrQueueSet&);
       
   302 
   299 protected:
   303 protected:
   300   bool _all_active;
   304   bool _all_active;
   301 
   305 
   302   // Create an empty ptr queue set.
   306   // Create an empty ptr queue set.
   303   PtrQueueSet();
   307   PtrQueueSet();
   307   // arguments.
   311   // arguments.
   308   void initialize(BufferNode::Allocator* allocator);
   312   void initialize(BufferNode::Allocator* allocator);
   309 
   313 
   310 public:
   314 public:
   311 
   315 
       
   316   // Return the associated BufferNode allocator.
       
   317   BufferNode::Allocator* allocator() const { return _allocator; }
       
   318 
   312   // Return the buffer for a BufferNode of size buffer_size().
   319   // Return the buffer for a BufferNode of size buffer_size().
   313   void** allocate_buffer();
   320   void** allocate_buffer();
   314 
   321 
   315   // Return an empty buffer to the free list.  The node is required
   322   // Return an empty buffer to the free list.  The node is required
   316   // to have been allocated with a size of buffer_size().
   323   // to have been allocated with a size of buffer_size().