< prev index next >

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

Print this page

        

*** 61,79 **** ZPage* ZObjectAllocator::alloc_page(uint8_t type, size_t size, ZAllocationFlags flags) { ZPage* const page = ZHeap::heap()->alloc_page(type, size, flags); if (page != NULL) { // Increment used bytes ! Atomic::add(size, _used.addr()); } return page; } void ZObjectAllocator::undo_alloc_page(ZPage* page) { // Increment undone bytes ! Atomic::add(page->size(), _undone.addr()); ZHeap::heap()->undo_alloc_page(page); } uintptr_t ZObjectAllocator::alloc_object_in_shared_page(ZPage** shared_page, --- 61,79 ---- ZPage* ZObjectAllocator::alloc_page(uint8_t type, size_t size, ZAllocationFlags flags) { ZPage* const page = ZHeap::heap()->alloc_page(type, size, flags); if (page != NULL) { // Increment used bytes ! Atomic::add(_used.addr(), size); } return page; } void ZObjectAllocator::undo_alloc_page(ZPage* page) { // Increment undone bytes ! Atomic::add(_undone.addr(), page->size()); ZHeap::heap()->undo_alloc_page(page); } uintptr_t ZObjectAllocator::alloc_object_in_shared_page(ZPage** shared_page,
*** 95,105 **** // Allocate object before installing the new page addr = new_page->alloc_object(size); retry: // Install new page ! ZPage* const prev_page = Atomic::cmpxchg(new_page, shared_page, page); if (prev_page != page) { if (prev_page == NULL) { // Previous page was retired, retry installing the new page page = prev_page; goto retry; --- 95,105 ---- // Allocate object before installing the new page addr = new_page->alloc_object(size); retry: // Install new page ! ZPage* const prev_page = Atomic::cmpxchg(shared_page, page, new_page); if (prev_page != page) { if (prev_page == NULL) { // Previous page was retired, retry installing the new page page = prev_page; goto retry;
< prev index next >