< prev index next >

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

Print this page
rev 56193 : [mq]: pqsinit


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




 106                                          uint worker_i,
 107                                          size_t stop_at,
 108                                          bool during_pause);
 109 
 110   bool mut_process_buffer(BufferNode* node);
 111 
 112   // If the queue contains more cards than configured here, the
 113   // mutator must start doing some of the concurrent refinement work.
 114   size_t _max_cards;
 115   size_t _max_cards_padding;
 116   static const size_t MaxCardsUnlimited = SIZE_MAX;
 117 
 118   G1FreeIdSet _free_ids;
 119 
 120   // The number of completed buffers processed by mutator and rs thread,
 121   // respectively.
 122   jint _processed_buffers_mut;
 123   jint _processed_buffers_rs_thread;
 124 
 125 public:
 126   G1DirtyCardQueueSet(Monitor* cbl_mon, BufferNode::Allocator* allocator);
 127   ~G1DirtyCardQueueSet();


 128 
 129   // The number of parallel ids that can be claimed to allow collector or
 130   // mutator threads to do card-processing work.
 131   static uint num_par_ids();
 132 
 133   static void handle_zero_index_for_thread(Thread* t);
 134 
 135   // Either process the entire buffer and return true, or enqueue the
 136   // buffer and return false.  If the buffer is completely processed,
 137   // it can be reused in place.
 138   bool process_or_enqueue_completed_buffer(BufferNode* node);
 139 
 140   virtual void enqueue_completed_buffer(BufferNode* node);
 141 
 142   // If the number of completed buffers is > stop_at, then remove and
 143   // return a completed buffer from the list.  Otherwise, return NULL.
 144   BufferNode* get_completed_buffer(size_t stop_at = 0);
 145 
 146   // The number of cards in completed buffers. Read without synchronization.
 147   size_t num_cards() const { return _num_cards; }


< prev index next >