diff options
| author | kcbanner <kcbanner@gmail.com> | 2025-08-09 18:48:15 -0400 |
|---|---|---|
| committer | kcbanner <kcbanner@gmail.com> | 2025-08-09 18:48:15 -0400 |
| commit | 95f57c3369181123aa7ebd4a9654fc489f8bb4fd (patch) | |
| tree | 4faf083d4cc96f9ce732d91c5f280744ba986d17 /lib/std/Build/WebServer.zig | |
| parent | 125c4a265aa7cfe82b3fc0c1ac7de75a07315411 (diff) | |
| download | zig-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.zig | 10 |
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), |
