From 61b2516b9f7bcc0f7f03360a645a430db495aeee Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 8 Aug 2023 22:19:44 -0400 Subject: memory add flush function --- src/memory.cpp | 11 +++++++++++ src/memory.hpp | 1 + 2 files changed, 12 insertions(+) diff --git a/src/memory.cpp b/src/memory.cpp index 775b30a..21780f2 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -94,3 +94,14 @@ void pke::EndTransientBucket(pke::MemBucket *bkt) { bucketHead--; } } + +void pke::Flush() { + for (long i = bucketHead - 2; i > -1; --i) { + if (buckets[i].head != 0) break; + if (buckets[i+1].head != 0) break; + if (buckets[i].transient == true) break; + if (buckets[i+1].transient == true) break; + bucketHead--; + DestroyBucket(&buckets[i + 1]); + } +} diff --git a/src/memory.hpp b/src/memory.hpp index 2a244f6..1d117f3 100644 --- a/src/memory.hpp +++ b/src/memory.hpp @@ -20,6 +20,7 @@ void PkeDelete(const void *ptr, std::size_t sz, MemBucket *bkt); MemBucket *BeginTransientBucket(int64_t sz = DEFAULT_BUCKET_SIZE); // 256MB void EndTransientBucket(MemBucket *bkt); +void Flush(); template inline T *PkeNew() { -- cgit v1.2.3