mirror of
https://github.com/ziglang/zig.git
synced 2026-02-16 14:28:57 +00:00
Free threads in std.Thread.Pool.init only with pool.join
Free the allocated threads in the initialization of a thread pool only with pool.join instead of additionally calling allocator.free causing free to be called twice. Resolves #18643
This commit is contained in:
parent
d0da3d731e
commit
3331c5e7af
@ -35,10 +35,9 @@ pub fn init(pool: *Pool, options: Options) !void {
|
||||
}
|
||||
|
||||
const thread_count = options.n_jobs orelse @max(1, std.Thread.getCpuCount() catch 1);
|
||||
pool.threads = try allocator.alloc(std.Thread, thread_count);
|
||||
errdefer allocator.free(pool.threads);
|
||||
|
||||
// kill and join any threads we spawned previously on error.
|
||||
// kill and join any threads we spawned and free memory on error.
|
||||
pool.threads = try allocator.alloc(std.Thread, thread_count);
|
||||
var spawned: usize = 0;
|
||||
errdefer pool.join(spawned);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user