aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mimalloc_arena.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mimalloc_arena.zig b/src/mimalloc_arena.zig
index db7a6c368..e2df152fb 100644
--- a/src/mimalloc_arena.zig
+++ b/src/mimalloc_arena.zig
@@ -23,10 +23,19 @@ pub const Arena = struct {
mimalloc.mi_heap_destroy(this.heap);
}
+ pub fn reset(this: *Arena) void {
+ this.deinit();
+ this.* = initAssumeCapacity();
+ }
+
pub fn init() !Arena {
return Arena{ .heap = mimalloc.mi_heap_new() orelse return error.OutOfMemory };
}
+ pub fn initAssumeCapacity() Arena {
+ return Arena{ .heap = mimalloc.mi_heap_new().? };
+ }
+
pub fn gc(this: Arena, force: bool) void {
mimalloc.mi_heap_collect(this.heap, force);
}