aboutsummaryrefslogtreecommitdiff
path: root/common.zig
diff options
context:
space:
mode:
authorMartin Ashby <martin@ashbysoft.com>2023-12-03 22:09:16 +0000
committerMartin Ashby <martin@ashbysoft.com>2023-12-03 22:09:16 +0000
commit4700fa924ab82ca2e41daa627a59f691d8177d5b (patch)
tree3f6998b9ee11656b46d298d94be222ed3c08252f /common.zig
parentecfca750dff292d5083465a2ca5b6106649b92af (diff)
downloadaoc2023-4700fa924ab82ca2e41daa627a59f691d8177d5b.tar.gz
aoc2023-4700fa924ab82ca2e41daa627a59f691d8177d5b.tar.bz2
aoc2023-4700fa924ab82ca2e41daa627a59f691d8177d5b.tar.xz
aoc2023-4700fa924ab82ca2e41daa627a59f691d8177d5b.zip
Fix the annoying freeze on .free
It was caused by duplicating GeneralPurposeAllocator, by using it as a struct value. It has a mutex in it, so don't do that.
Diffstat (limited to 'common.zig')
-rw-r--r--common.zig11
1 files changed, 3 insertions, 8 deletions
diff --git a/common.zig b/common.zig
index f724940..c38beb1 100644
--- a/common.zig
+++ b/common.zig
@@ -2,16 +2,13 @@ const std = @import("std");
pub const Setup = struct {
pub const Part = enum { pt1, pt2 };
-
- gpa: std.heap.GeneralPurposeAllocator(.{}),
a: std.mem.Allocator,
input: []const u8,
part: Part,
- pub fn get() !Setup {
+ pub fn get(a: std.mem.Allocator) !Setup {
var res: Setup = undefined;
- res.gpa = std.heap.GeneralPurposeAllocator(.{}){};
- res.a = res.gpa.allocator();
+ res.a = a;
var p = std.process.args();
var file: []const u8 = "";
if (!p.skip()) return error.NoProgramName;
@@ -39,8 +36,6 @@ pub const Setup = struct {
return res;
}
pub fn deinit(self: *Setup) void {
- _ = self;
- //self.a.free(self.input); // For some reason this is freezing
- //_ = self.gpa.deinit(); // and if we don't free, then gpa.deinit whinges that we leaked memory :)
+ self.a.free(self.input); // For some reason this is freezing
}
};