From 9383af84ee02b755750bae9ce09f0de3d0d1f7c9 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 8 Aug 2023 20:26:25 -0400 Subject: first pass memory buckets --- src/memory.hpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/memory.hpp (limited to 'src/memory.hpp') diff --git a/src/memory.hpp b/src/memory.hpp new file mode 100644 index 0000000..43ada0f --- /dev/null +++ b/src/memory.hpp @@ -0,0 +1,34 @@ +#ifndef PKE_MEMORY_HPP +#define PKE_MEMORY_HPP + +#include +#include +#include + +#define DEFAULT_BUCKET_SIZE 1UL << 27 + +namespace pke +{ + +struct MemBucket; + +void *PkeNew(std::size_t sz); +void *PkeNew(std::size_t sz, MemBucket *bkt); +void PkeDelete(void *ptr); +void PkeDelete(void *ptr, MemBucket *bkt); + +MemBucket *BeginTransientBucket(int64_t sz = DEFAULT_BUCKET_SIZE); // 256MB +void EndTransientBucket(MemBucket *bkt); + +template +T *PkeNew() { + return reinterpret_cast(PkeNew(sizeof(T))); +} +template +T *PkeNew(std::size_t sz) { + return reinterpret_cast(PkeNew(sz)); +} + +} /* pke */ + +#endif /* PKE_MEMORY_HPP */ -- cgit v1.2.3