authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-03-28 17:20:35-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-20 10:38:38-07:00
logdb499b82b5c0d44030eecd6e99fd4864f3baaa53
tree9732b455b220a2f3818973491c22c89ad9ab150e
parent1216e807ac03e62c981ecfc74d8b18b39533c2d9

free freeing wrong amount in thread pool impl


1 files changed, 2 insertions(+), 2 deletions(-)

lib/std/Thread/Pool.zig+2-2
...@@ -396,6 +396,6 @@ pub fn @"await"(userdata: ?*anyopaque, any_future: *std.Io.AnyFuture, result: []...@@ -396,6 +396,6 @@ pub fn @"await"(userdata: ?*anyopaque, any_future: *std.Io.AnyFuture, result: []
396 const closure: *AsyncClosure = @ptrCast(@alignCast(any_future));396 const closure: *AsyncClosure = @ptrCast(@alignCast(any_future));
397 closure.reset_event.wait();397 closure.reset_event.wait();
398 const base: [*]align(@alignOf(AsyncClosure)) u8 = @ptrCast(closure);398 const base: [*]align(@alignOf(AsyncClosure)) u8 = @ptrCast(closure);
399 @memcpy(result, (base + @sizeOf(AsyncClosure))[0..result.len]);399 @memcpy(result, closure.resultPointer()[0..result.len]);
400 thread_pool.allocator.free(base[0 .. @sizeOf(AsyncClosure) + result.len]);400 thread_pool.allocator.free(base[0 .. closure.result_offset + result.len]);
401}401}