< prev index next >

src/hotspot/share/gc/shared/ptrQueue.cpp

Print this page
rev 52689 : [mq]: tschatzl_review


 147       assert(prev != NULL, "invariant");
 148       assert(prev->next() == tail, "invariant");
 149       prev->set_next(NULL);
 150       _free_list = tail;
 151       _free_count -= remove;
 152     }
 153   }
 154   while (head != NULL) {
 155     BufferNode* next = head->next();
 156     BufferNode::deallocate(head);
 157     head = next;
 158   }
 159 }
 160 
 161 PtrQueueSet::PtrQueueSet(bool notify_when_complete) :
 162   _allocator(NULL),
 163   _cbl_mon(NULL),
 164   _completed_buffers_head(NULL),
 165   _completed_buffers_tail(NULL),
 166   _n_completed_buffers(0),
 167   _process_completed_buffers_threshold(_process_completed_buffers_threshold_never),
 168   _process_completed(false),
 169   _all_active(false),
 170   _notify_when_complete(notify_when_complete),
 171   _max_completed_buffers(_max_completed_buffers_unlimited),
 172   _completed_buffers_padding(0)
 173 {}
 174 
 175 PtrQueueSet::~PtrQueueSet() {
 176   // There are presently only a couple (derived) instances ever
 177   // created, and they are permanent, so no harm currently done by
 178   // doing nothing here.
 179 }
 180 
 181 void PtrQueueSet::initialize(Monitor* cbl_mon,
 182                              BufferNode::Allocator* allocator) {
 183   assert(cbl_mon != NULL && allocator != NULL, "Init order issue?");
 184   _cbl_mon = cbl_mon;
 185   _allocator = allocator;
 186 }
 187 
 188 void** PtrQueueSet::allocate_buffer() {
 189   BufferNode* node = _allocator->allocate();
 190   return BufferNode::make_buffer_from_node(node);
 191 }




 147       assert(prev != NULL, "invariant");
 148       assert(prev->next() == tail, "invariant");
 149       prev->set_next(NULL);
 150       _free_list = tail;
 151       _free_count -= remove;
 152     }
 153   }
 154   while (head != NULL) {
 155     BufferNode* next = head->next();
 156     BufferNode::deallocate(head);
 157     head = next;
 158   }
 159 }
 160 
 161 PtrQueueSet::PtrQueueSet(bool notify_when_complete) :
 162   _allocator(NULL),
 163   _cbl_mon(NULL),
 164   _completed_buffers_head(NULL),
 165   _completed_buffers_tail(NULL),
 166   _n_completed_buffers(0),
 167   _process_completed_buffers_threshold(ProcessCompletedBuffersThresholdNever),
 168   _process_completed(false),
 169   _all_active(false),
 170   _notify_when_complete(notify_when_complete),
 171   _max_completed_buffers(MaxCompletedBuffersUnlimited),
 172   _completed_buffers_padding(0)
 173 {}
 174 
 175 PtrQueueSet::~PtrQueueSet() {
 176   // There are presently only a couple (derived) instances ever
 177   // created, and they are permanent, so no harm currently done by
 178   // doing nothing here.
 179 }
 180 
 181 void PtrQueueSet::initialize(Monitor* cbl_mon,
 182                              BufferNode::Allocator* allocator) {
 183   assert(cbl_mon != NULL && allocator != NULL, "Init order issue?");
 184   _cbl_mon = cbl_mon;
 185   _allocator = allocator;
 186 }
 187 
 188 void** PtrQueueSet::allocate_buffer() {
 189   BufferNode* node = _allocator->allocate();
 190   return BufferNode::make_buffer_from_node(node);
 191 }


< prev index next >