aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/WebServer.zig
diff options
context:
space:
mode:
authorkcbanner <kcbanner@gmail.com>2025-08-09 18:48:15 -0400
committerkcbanner <kcbanner@gmail.com>2025-08-09 18:48:15 -0400
commit95f57c3369181123aa7ebd4a9654fc489f8bb4fd (patch)
tree4faf083d4cc96f9ce732d91c5f280744ba986d17 /lib/std/Build/WebServer.zig
parent125c4a265aa7cfe82b3fc0c1ac7de75a07315411 (diff)
downloadzig-95f57c3369181123aa7ebd4a9654fc489f8bb4fd.tar.gz
zig-95f57c3369181123aa7ebd4a9654fc489f8bb4fd.zip
net: Always set WSA_FLAG_OVERLAPPED when creating Windows sockets. Rework send and receive logic to use overlapped I/O.
build-web: Remove the now-redundant supports_recv logic
Diffstat (limited to 'lib/std/Build/WebServer.zig')
-rw-r--r--lib/std/Build/WebServer.zig10
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/std/Build/WebServer.zig b/lib/std/Build/WebServer.zig
index 5a62f7c8c6..454e9196b9 100644
--- a/lib/std/Build/WebServer.zig
+++ b/lib/std/Build/WebServer.zig
@@ -287,20 +287,14 @@ fn serveWebSocket(ws: *WebServer, sock: *http.Server.WebSocket) !noreturn {
copy.* = @atomicLoad(u8, shared, .monotonic);
}
- // Calling WSARecvFrom on one thread while another calls WSASend deadlocks.
- // This functionality is disabled until std.net uses overlapped sockets on Windows.
- const supports_recv = builtin.os.tag != .windows;
- const recv_thread = if (supports_recv)
- try std.Thread.spawn(.{}, recvWebSocketMessages, .{ ws, sock })
- else {};
- defer if (supports_recv) recv_thread.join();
+ const recv_thread = try std.Thread.spawn(.{}, recvWebSocketMessages, .{ ws, sock });
+ defer recv_thread.join();
{
const hello_header: abi.Hello = .{
.status = prev_build_status,
.flags = .{
.time_report = ws.graph.time_report,
- .supports_recv = supports_recv,
},
.timestamp = ws.now(),
.steps_len = @intCast(ws.all_steps.len),