< prev index next >

src/hotspot/share/gc/z/zHeap.cpp

Print this page




 169   return false;
 170 }
 171 
 172 uint ZHeap::nconcurrent_worker_threads() const {
 173   return _workers.nconcurrent();
 174 }
 175 
 176 uint ZHeap::nconcurrent_no_boost_worker_threads() const {
 177   return _workers.nconcurrent_no_boost();
 178 }
 179 
 180 void ZHeap::set_boost_worker_threads(bool boost) {
 181   _workers.set_boost(boost);
 182 }
 183 
 184 void ZHeap::threads_do(ThreadClosure* tc) const {
 185   _page_allocator.threads_do(tc);
 186   _workers.threads_do(tc);
 187 }
 188 
 189 // Adapter class from AbstractGangTask to Ztask
 190 class ZAbstractGangTaskAdapter : public ZTask {
 191 private:
 192   AbstractGangTask* _task;
 193 
 194 public:
 195   ZAbstractGangTaskAdapter(AbstractGangTask* task) :
 196       ZTask(task->name()),
 197       _task(task) { }
 198 
 199   virtual void work() {
 200     _task->work(ZThread::worker_id());
 201   }
 202 };
 203 
 204 void ZHeap::run_task(AbstractGangTask* task) {
 205   ZAbstractGangTaskAdapter ztask(task);
 206   _workers.run_parallel(&ztask);
 207 }
 208 
 209 void ZHeap::out_of_memory() {
 210   ResourceMark rm;
 211 
 212   ZStatInc(ZCounterOutOfMemory);
 213   log_info(gc)("Out Of Memory (%s)", Thread::current()->name());
 214 }
 215 
 216 ZPage* ZHeap::alloc_page(uint8_t type, size_t size, ZAllocationFlags flags) {
 217   ZPage* const page = _page_allocator.alloc_page(type, size, flags);
 218   if (page != NULL) {
 219     // Insert page table entry
 220     _page_table.insert(page);
 221   }
 222 
 223   return page;
 224 }
 225 
 226 void ZHeap::undo_alloc_page(ZPage* page) {
 227   assert(page->is_allocating(), "Invalid page state");
 228 




 169   return false;
 170 }
 171 
 172 uint ZHeap::nconcurrent_worker_threads() const {
 173   return _workers.nconcurrent();
 174 }
 175 
 176 uint ZHeap::nconcurrent_no_boost_worker_threads() const {
 177   return _workers.nconcurrent_no_boost();
 178 }
 179 
 180 void ZHeap::set_boost_worker_threads(bool boost) {
 181   _workers.set_boost(boost);
 182 }
 183 
 184 void ZHeap::threads_do(ThreadClosure* tc) const {
 185   _page_allocator.threads_do(tc);
 186   _workers.threads_do(tc);
 187 }
 188 




















 189 void ZHeap::out_of_memory() {
 190   ResourceMark rm;
 191 
 192   ZStatInc(ZCounterOutOfMemory);
 193   log_info(gc)("Out Of Memory (%s)", Thread::current()->name());
 194 }
 195 
 196 ZPage* ZHeap::alloc_page(uint8_t type, size_t size, ZAllocationFlags flags) {
 197   ZPage* const page = _page_allocator.alloc_page(type, size, flags);
 198   if (page != NULL) {
 199     // Insert page table entry
 200     _page_table.insert(page);
 201   }
 202 
 203   return page;
 204 }
 205 
 206 void ZHeap::undo_alloc_page(ZPage* page) {
 207   assert(page->is_allocating(), "Invalid page state");
 208 


< prev index next >