#include <grpc/support/port_platform.h>
#include "src/core/lib/resource_quota/arena.h"
#include <atomic>
#include <new>
#include <grpc/support/alloc.h>
#include "src/core/lib/gpr/alloc.h"
namespace {
void* ArenaStorage(size_t initial_size) { … }
}
namespace grpc_core {
Arena::~Arena() { … }
Arena* Arena::Create(size_t initial_size, MemoryAllocator* memory_allocator) { … }
std::pair<Arena*, void*> Arena::CreateWithAlloc(
size_t initial_size, size_t alloc_size, MemoryAllocator* memory_allocator) { … }
void Arena::Destroy() { … }
void* Arena::AllocZone(size_t size) { … }
void Arena::ManagedNewObject::Link(std::atomic<ManagedNewObject*>* head) { … }
void* Arena::AllocPooled(size_t alloc_size, std::atomic<FreePoolNode*>* head) { … }
void Arena::FreePooled(void* p, std::atomic<FreePoolNode*>* head) { … }
}