From 54dbbf69440e7dd32b4402104d12741031049779 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 22 Nov 2025 23:06:51 -0500 Subject: [PATCH] xo-tokenizer: streamline error path during tokenization --- src/alloc/ArenaAlloc.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/alloc/ArenaAlloc.cpp b/src/alloc/ArenaAlloc.cpp index 0a0365e2..e5609297 100644 --- a/src/alloc/ArenaAlloc.cpp +++ b/src/alloc/ArenaAlloc.cpp @@ -64,10 +64,10 @@ namespace xo { // 5. byte * base = reinterpret_cast(::mmap(nullptr, - z + c_hugepage_z, - PROT_NONE, - MAP_PRIVATE | MAP_ANONYMOUS, - -1, 0)); + z + c_hugepage_z, + PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS, + -1, 0)); log && log("acquired memory [lo,hi) using mmap", xtag("lo", base), @@ -101,7 +101,13 @@ namespace xo { ::munmap(aligned_hi, suffix); // 7. } +#ifdef __linux__ ::madvise(aligned_base, z, MADV_HUGEPAGE); // 8. +#endif + // TODO: for OSX -> need something else here. + // MAP_ALIGNED_SUPER with mmap() and/or + // use mach_vm_allocate() + // this->lo_ = aligned_base; this->committed_z_ = 0;