authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-10-30 10:19:57-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-11-21 07:09:44-08:00
logfba9fdf54feff811108d12a4f14506446dd82faf
tree371cad1fa78bd94f34e76d79011b39db6f66ec74
parentd3e20e71be8d94b8c0534d2cb57a1a27c451db9f

std.Io.Threaded: import std.mem.Alignment


1 files changed, 13 insertions(+), 12 deletions(-)

lib/std/Io/Threaded.zig+13-12
......@@ -13,6 +13,7 @@ const net = std.Io.net;
1313const HostName = std.Io.net.HostName;
1414const IpAddress = std.Io.net.IpAddress;
1515const Allocator = std.mem.Allocator;
16const Alignment = std.mem.Alignment;
1617const assert = std.debug.assert;
1718const posix = std.posix;
1819
......@@ -387,7 +388,7 @@ const AsyncClosure = struct {
387388 func: *const fn (context: *anyopaque, result: *anyopaque) void,
388389 reset_event: ResetEvent,
389390 select_condition: ?*ResetEvent,
390 context_alignment: std.mem.Alignment,
391 context_alignment: Alignment,
391392 result_offset: usize,
392393 alloc_len: usize,
393394
......@@ -434,9 +435,9 @@ const AsyncClosure = struct {
434435 gpa: Allocator,
435436 mode: enum { async, concurrent },
436437 result_len: usize,
437 result_alignment: std.mem.Alignment,
438 result_alignment: Alignment,
438439 context: []const u8,
439 context_alignment: std.mem.Alignment,
440 context_alignment: Alignment,
440441 func: *const fn (context: *const anyopaque, result: *anyopaque) void,
441442 ) Allocator.Error!*AsyncClosure {
442443 const max_context_misalignment = context_alignment.toByteUnits() -| @alignOf(AsyncClosure);
......@@ -485,9 +486,9 @@ const AsyncClosure = struct {
485486fn async(
486487 userdata: ?*anyopaque,
487488 result: []u8,
488 result_alignment: std.mem.Alignment,
489 result_alignment: Alignment,
489490 context: []const u8,
490 context_alignment: std.mem.Alignment,
491 context_alignment: Alignment,
491492 start: *const fn (context: *const anyopaque, result: *anyopaque) void,
492493) ?*Io.AnyFuture {
493494 if (builtin.single_threaded) {
......@@ -547,9 +548,9 @@ fn async(
547548fn concurrent(
548549 userdata: ?*anyopaque,
549550 result_len: usize,
550 result_alignment: std.mem.Alignment,
551 result_alignment: Alignment,
551552 context: []const u8,
552 context_alignment: std.mem.Alignment,
553 context_alignment: Alignment,
553554 start: *const fn (context: *const anyopaque, result: *anyopaque) void,
554555) Io.ConcurrentError!*Io.AnyFuture {
555556 if (builtin.single_threaded) return error.ConcurrencyUnavailable;
......@@ -597,7 +598,7 @@ const GroupClosure = struct {
597598 /// Points to sibling `GroupClosure`. Used for walking the group to cancel all.
598599 node: std.SinglyLinkedList.Node,
599600 func: *const fn (*Io.Group, context: *anyopaque) void,
600 context_alignment: std.mem.Alignment,
601 context_alignment: Alignment,
601602 alloc_len: usize,
602603
603604 fn start(closure: *Closure) void {
......@@ -638,7 +639,7 @@ const GroupClosure = struct {
638639 t: *Threaded,
639640 group: *Io.Group,
640641 context: []const u8,
641 context_alignment: std.mem.Alignment,
642 context_alignment: Alignment,
642643 func: *const fn (*Io.Group, context: *const anyopaque) void,
643644 ) Allocator.Error!*GroupClosure {
644645 const max_context_misalignment = context_alignment.toByteUnits() -| @alignOf(GroupClosure);
......@@ -678,7 +679,7 @@ fn groupAsync(
678679 userdata: ?*anyopaque,
679680 group: *Io.Group,
680681 context: []const u8,
681 context_alignment: std.mem.Alignment,
682 context_alignment: Alignment,
682683 start: *const fn (*Io.Group, context: *const anyopaque) void,
683684) void {
684685 if (builtin.single_threaded) return start(group, context.ptr);
......@@ -794,7 +795,7 @@ fn await(
794795 userdata: ?*anyopaque,
795796 any_future: *Io.AnyFuture,
796797 result: []u8,
797 result_alignment: std.mem.Alignment,
798 result_alignment: Alignment,
798799) void {
799800 _ = result_alignment;
800801 const t: *Threaded = @ptrCast(@alignCast(userdata));
......@@ -806,7 +807,7 @@ fn cancel(
806807 userdata: ?*anyopaque,
807808 any_future: *Io.AnyFuture,
808809 result: []u8,
809 result_alignment: std.mem.Alignment,
810 result_alignment: Alignment,
810811) void {
811812 _ = result_alignment;
812813 const t: *Threaded = @ptrCast(@alignCast(userdata));