diff options
author | Martin Ashby <martin@ashbysoft.com> | 2023-12-03 22:09:16 +0000 |
---|---|---|
committer | Martin Ashby <martin@ashbysoft.com> | 2023-12-03 22:09:16 +0000 |
commit | 4700fa924ab82ca2e41daa627a59f691d8177d5b (patch) | |
tree | 3f6998b9ee11656b46d298d94be222ed3c08252f /common.zig | |
parent | ecfca750dff292d5083465a2ca5b6106649b92af (diff) | |
download | aoc2023-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.zig | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -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 } }; |