< prev index next >

src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp

Print this page
rev 56111 : [mq]: fix


 112 
 113   bool mut_process_buffer(BufferNode* node);
 114 
 115   // If the queue contains more buffers than configured here, the
 116   // mutator must start doing some of the concurrent refinement work,
 117   size_t _max_completed_buffers;
 118   size_t _completed_buffers_padding;
 119   static const size_t MaxCompletedBuffersUnlimited = SIZE_MAX;
 120 
 121   G1FreeIdSet* _free_ids;
 122 
 123   // The number of completed buffers processed by mutator and rs thread,
 124   // respectively.
 125   jint _processed_buffers_mut;
 126   jint _processed_buffers_rs_thread;
 127 
 128 public:
 129   G1DirtyCardQueueSet(bool notify_when_complete = true);
 130   ~G1DirtyCardQueueSet();
 131 
 132   void initialize(Monitor* cbl_mon,
 133                   BufferNode::Allocator* allocator,
 134                   bool init_free_ids = false);
 135 
 136   // The number of parallel ids that can be claimed to allow collector or
 137   // mutator threads to do card-processing work.
 138   static uint num_par_ids();
 139 
 140   static void handle_zero_index_for_thread(Thread* t);
 141 
 142   // Either process the entire buffer and return true, or enqueue the
 143   // buffer and return false.  If the buffer is completely processed,
 144   // it can be reused in place.
 145   bool process_or_enqueue_completed_buffer(BufferNode* node);
 146 
 147   virtual void enqueue_completed_buffer(BufferNode* node);
 148 
 149   // If the number of completed buffers is > stop_at, then remove and
 150   // return a completed buffer from the list.  Otherwise, return NULL.
 151   BufferNode* get_completed_buffer(size_t stop_at = 0);
 152 
 153   // The number of buffers in the list. Derived as an approximation from the number
 154   // of entries in the buffers. Racy.




 112 
 113   bool mut_process_buffer(BufferNode* node);
 114 
 115   // If the queue contains more buffers than configured here, the
 116   // mutator must start doing some of the concurrent refinement work,
 117   size_t _max_completed_buffers;
 118   size_t _completed_buffers_padding;
 119   static const size_t MaxCompletedBuffersUnlimited = SIZE_MAX;
 120 
 121   G1FreeIdSet* _free_ids;
 122 
 123   // The number of completed buffers processed by mutator and rs thread,
 124   // respectively.
 125   jint _processed_buffers_mut;
 126   jint _processed_buffers_rs_thread;
 127 
 128 public:
 129   G1DirtyCardQueueSet(bool notify_when_complete = true);
 130   ~G1DirtyCardQueueSet();
 131 
 132   void initialize(Monitor* cbl_mon, BufferNode::Allocator* allocator);


 133 
 134   // The number of parallel ids that can be claimed to allow collector or
 135   // mutator threads to do card-processing work.
 136   static uint num_par_ids();
 137 
 138   static void handle_zero_index_for_thread(Thread* t);
 139 
 140   // Either process the entire buffer and return true, or enqueue the
 141   // buffer and return false.  If the buffer is completely processed,
 142   // it can be reused in place.
 143   bool process_or_enqueue_completed_buffer(BufferNode* node);
 144 
 145   virtual void enqueue_completed_buffer(BufferNode* node);
 146 
 147   // If the number of completed buffers is > stop_at, then remove and
 148   // return a completed buffer from the list.  Otherwise, return NULL.
 149   BufferNode* get_completed_buffer(size_t stop_at = 0);
 150 
 151   // The number of buffers in the list. Derived as an approximation from the number
 152   // of entries in the buffers. Racy.


< prev index next >