From 4700fa924ab82ca2e41daa627a59f691d8177d5b Mon Sep 17 00:00:00 2001 From: Martin Ashby Date: Sun, 3 Dec 2023 22:09:16 +0000 Subject: 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. --- common.zig | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'common.zig') 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 } }; -- cgit v1.2.3-ZIG