Commit f58ee387c7
Changed files (1)
lib
std
lib/std/posix.zig
@@ -6479,33 +6479,31 @@ pub const PollError = error{
} || UnexpectedError;
pub fn poll(fds: []pollfd, timeout: i32) PollError!usize {
+ if (native_os == .windows) {
+ switch (windows.poll(fds.ptr, @intCast(fds.len), timeout)) {
+ windows.ws2_32.SOCKET_ERROR => switch (windows.ws2_32.WSAGetLastError()) {
+ .WSANOTINITIALISED => unreachable,
+ .WSAENETDOWN => return error.NetworkSubsystemFailed,
+ .WSAENOBUFS => return error.SystemResources,
+ // TODO: handle more errors
+ else => |err| return windows.unexpectedWSAError(err),
+ },
+ else => |rc| return @intCast(rc),
+ }
+ }
while (true) {
const fds_count = cast(nfds_t, fds.len) orelse return error.SystemResources;
const rc = system.poll(fds.ptr, fds_count, timeout);
- if (native_os == .windows) {
- if (rc == windows.ws2_32.SOCKET_ERROR) {
- switch (windows.ws2_32.WSAGetLastError()) {
- .WSANOTINITIALISED => unreachable,
- .WSAENETDOWN => return error.NetworkSubsystemFailed,
- .WSAENOBUFS => return error.SystemResources,
- // TODO: handle more errors
- else => |err| return windows.unexpectedWSAError(err),
- }
- } else {
- return @intCast(rc);
- }
- } else {
- switch (errno(rc)) {
- .SUCCESS => return @intCast(rc),
- .FAULT => unreachable,
- .INTR => continue,
- .INVAL => unreachable,
- .NOMEM => return error.SystemResources,
- else => |err| return unexpectedErrno(err),
- }
+ switch (errno(rc)) {
+ .SUCCESS => return @intCast(rc),
+ .FAULT => unreachable,
+ .INTR => continue,
+ .INVAL => unreachable,
+ .NOMEM => return error.SystemResources,
+ else => |err| return unexpectedErrno(err),
}
- unreachable;
}
+ unreachable;
}
pub const PPollError = error{