authorgravatar for reversedrooms@gmail.comxeondev <reversedrooms@gmail.com> 2026-07-01 16:52:34+03:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2026-08-09 15:42:33+02:00
logb2c230df5033864a19eb65defceac1cc3013be3c
treeb8b0f29d826f09399ed0621392401c1e97964164
parent821d122c82af499c2a5b2fc0223cf399faa10d16

std.Io: change `netClose` to accept `[]const net.Socket`


6 files changed, 15 insertions(+), 15 deletions(-)

lib/std/Io.zig+3-3
...@@ -238,7 +238,7 @@ pub const VTable = struct {...@@ -238,7 +238,7 @@ pub const VTable = struct {
238 netSend: *const fn (?*anyopaque, net.Socket.Handle, []net.OutgoingMessage, net.SendFlags) struct { ?net.Socket.SendError, usize },238 netSend: *const fn (?*anyopaque, net.Socket.Handle, []net.OutgoingMessage, net.SendFlags) struct { ?net.Socket.SendError, usize },
239 netWrite: *const fn (?*anyopaque, dest: net.Socket.Handle, header: []const u8, data: []const []const u8, splat: usize) net.Stream.Writer.Error!usize,239 netWrite: *const fn (?*anyopaque, dest: net.Socket.Handle, header: []const u8, data: []const []const u8, splat: usize) net.Stream.Writer.Error!usize,
240 netWriteFile: *const fn (?*anyopaque, net.Socket.Handle, header: []const u8, *Io.File.Reader, Io.Limit) net.Stream.Writer.WriteFileError!usize,240 netWriteFile: *const fn (?*anyopaque, net.Socket.Handle, header: []const u8, *Io.File.Reader, Io.Limit) net.Stream.Writer.WriteFileError!usize,
241 netClose: *const fn (?*anyopaque, handle: []const net.Socket.Handle) void,241 netClose: *const fn (?*anyopaque, sockets: []const net.Socket) void,
242 netShutdown: *const fn (?*anyopaque, handle: net.Socket.Handle, how: net.ShutdownHow) net.ShutdownError!void,242 netShutdown: *const fn (?*anyopaque, handle: net.Socket.Handle, how: net.ShutdownHow) net.ShutdownError!void,
243 netInterfaceNameResolve: *const fn (?*anyopaque, *const net.Interface.Name) net.Interface.Name.ResolveError!net.Interface,243 netInterfaceNameResolve: *const fn (?*anyopaque, *const net.Interface.Name) net.Interface.Name.ResolveError!net.Interface,
244 netInterfaceName: *const fn (?*anyopaque, net.Interface) net.Interface.NameError!net.Interface.Name,244 netInterfaceName: *const fn (?*anyopaque, net.Interface) net.Interface.NameError!net.Interface.Name,
...@@ -3482,9 +3482,9 @@ pub fn failingNetWriteFile(userdata: ?*anyopaque, handle: net.Socket.Handle, hea...@@ -3482,9 +3482,9 @@ pub fn failingNetWriteFile(userdata: ?*anyopaque, handle: net.Socket.Handle, hea
3482 return error.NetworkDown;3482 return error.NetworkDown;
3483}3483}
34843484
3485pub fn unreachableNetClose(userdata: ?*anyopaque, handle: []const net.Socket.Handle) void {3485pub fn unreachableNetClose(userdata: ?*anyopaque, sockets: []const net.Socket) void {
3486 _ = userdata;3486 _ = userdata;
3487 _ = handle;3487 _ = sockets;
3488 unreachable;3488 unreachable;
3489}3489}
34903490
lib/std/Io/Dispatch.zig+2-2
...@@ -4912,10 +4912,10 @@ fn netWriteFileUnavailable(...@@ -4912,10 +4912,10 @@ fn netWriteFileUnavailable(
4912 return error.Unimplemented;4912 return error.Unimplemented;
4913}4913}
49144914
4915fn netClose(userdata: ?*anyopaque, handles: []const net.Socket.Handle) void {4915fn netClose(userdata: ?*anyopaque, sockets: []const net.Socket) void {
4916 const ev: *Evented = @ptrCast(@alignCast(userdata));4916 const ev: *Evented = @ptrCast(@alignCast(userdata));
4917 _ = ev;4917 _ = ev;
4918 for (handles) |handle| closeFd(handle);4918 for (sockets) |socket| closeFd(socket.handle);
4919}4919}
49204920
4921fn netShutdownUnavailable(4921fn netShutdownUnavailable(
lib/std/Io/Kqueue.zig+2-2
...@@ -1280,10 +1280,10 @@ fn netWrite(userdata: ?*anyopaque, dest: net.Socket.Handle, header: []const u8,...@@ -1280,10 +1280,10 @@ fn netWrite(userdata: ?*anyopaque, dest: net.Socket.Handle, header: []const u8,
1280 @panic("TODO");1280 @panic("TODO");
1281}1281}
12821282
1283fn netClose(userdata: ?*anyopaque, handles: []const net.Socket.Handle) void {1283fn netClose(userdata: ?*anyopaque, sockets: []const net.Socket) void {
1284 const k: *Kqueue = @ptrCast(@alignCast(userdata));1284 const k: *Kqueue = @ptrCast(@alignCast(userdata));
1285 _ = k;1285 _ = k;
1286 _ = handles;1286 _ = sockets;
1287 @panic("TODO");1287 @panic("TODO");
1288}1288}
12891289
lib/std/Io/Threaded.zig+4-4
...@@ -13415,13 +13415,13 @@ fn addBuf(v: []posix.iovec_const, i: *iovlen_t, bytes: []const u8) void {...@@ -13415,13 +13415,13 @@ fn addBuf(v: []posix.iovec_const, i: *iovlen_t, bytes: []const u8) void {
13415 i.* += 1;13415 i.* += 1;
13416}13416}
1341713417
13418fn netClose(userdata: ?*anyopaque, handles: []const net.Socket.Handle) void {13418fn netClose(userdata: ?*anyopaque, sockets: []const net.Socket) void {
13419 if (!have_networking) unreachable;13419 if (!have_networking) unreachable;
13420 const t: *Threaded = @ptrCast(@alignCast(userdata));13420 const t: *Threaded = @ptrCast(@alignCast(userdata));
13421 _ = t;13421 _ = t;
13422 for (handles) |handle| switch (native_os) {13422 for (sockets) |socket| switch (native_os) {
13423 .windows => windows.CloseHandle(handle),13423 .windows => windows.CloseHandle(socket.handle),
13424 else => closeFd(handle),13424 else => closeFd(socket.handle),
13425 };13425 };
13426}13426}
1342713427
lib/std/Io/Uring.zig+2-2
...@@ -5189,9 +5189,9 @@ fn netWriteFileUnavailable(...@@ -5189,9 +5189,9 @@ fn netWriteFileUnavailable(
5189 return error.Unimplemented;5189 return error.Unimplemented;
5190}5190}
51915191
5192fn netClose(userdata: ?*anyopaque, handles: []const net.Socket.Handle) void {5192fn netClose(userdata: ?*anyopaque, sockets: []const net.Socket) void {
5193 const ev: *Evented = @ptrCast(@alignCast(userdata));5193 const ev: *Evented = @ptrCast(@alignCast(userdata));
5194 for (handles) |handle| ev.close(handle);5194 for (sockets) |sock| ev.close(sock.handle);
5195}5195}
51965196
5197fn netShutdown(5197fn netShutdown(
lib/std/Io/net.zig+2-2
...@@ -1081,7 +1081,7 @@ pub const Socket = struct {...@@ -1081,7 +1081,7 @@ pub const Socket = struct {
10811081
1082 /// Leaves `address` in a valid state.1082 /// Leaves `address` in a valid state.
1083 pub fn close(s: *const Socket, io: Io) void {1083 pub fn close(s: *const Socket, io: Io) void {
1084 io.vtable.netClose(io.userdata, (&s.handle)[0..1]);1084 io.vtable.netClose(io.userdata, s[0..1]);
1085 }1085 }
10861086
1087 pub fn closeMany(io: Io, sockets: []const Socket) void {1087 pub fn closeMany(io: Io, sockets: []const Socket) void {
...@@ -1258,7 +1258,7 @@ pub const Stream = struct {...@@ -1258,7 +1258,7 @@ pub const Stream = struct {
1258 }1258 }
12591259
1260 pub fn close(s: *const Stream, io: Io) void {1260 pub fn close(s: *const Stream, io: Io) void {
1261 io.vtable.netClose(io.userdata, (&s.socket.handle)[0..1]);1261 io.vtable.netClose(io.userdata, (&s.socket)[0..1]);
1262 }1262 }
12631263
1264 pub fn shutdown(s: *const Stream, io: Io, how: ShutdownHow) ShutdownError!void {1264 pub fn shutdown(s: *const Stream, io: Io, how: ShutdownHow) ShutdownError!void {