| ... | @@ -1256,21 +1256,23 @@ pub fn munlockall() usize { | ... | @@ -1256,21 +1256,23 @@ pub fn munlockall() usize { |
| 1256 | } | 1256 | } |
| 1257 | | 1257 | |
| 1258 | pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize { | 1258 | pub fn poll(fds: [*]pollfd, n: nfds_t, timeout: i32) usize { |
| 1259 | return if (@hasField(SYS, "poll")) | 1259 | if (@hasField(SYS, "poll")) { |
| 1260 | return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout))) | 1260 | return syscall3(.poll, @intFromPtr(fds), n, @as(u32, @bitCast(timeout))); |
| 1261 | else | 1261 | } else { |
| 1262 | ppoll( | 1262 | var ts: timespec = if (timeout >= 0) |
| | 1263 | .{ |
| | 1264 | .sec = @divTrunc(timeout, 1000), |
| | 1265 | .nsec = @rem(timeout, 1000) * 1000000, |
| | 1266 | } |
| | 1267 | else |
| | 1268 | undefined; |
| | 1269 | return ppoll( |
| 1263 | fds, | 1270 | fds, |
| 1264 | n, | 1271 | n, |
| 1265 | if (timeout >= 0) | 1272 | if (timeout >= 0) &ts else null, |
| 1266 | @constCast(&timespec{ | | |
| 1267 | .sec = @divTrunc(timeout, 1000), | | |
| 1268 | .nsec = @rem(timeout, 1000) * 1000000, | | |
| 1269 | }) | | |
| 1270 | else | | |
| 1271 | null, | | |
| 1272 | null, | 1273 | null, |
| 1273 | ); | 1274 | ); |
| | 1275 | } |
| 1274 | } | 1276 | } |
| 1275 | | 1277 | |
| 1276 | pub fn ppoll(fds: [*]pollfd, n: nfds_t, timeout: ?*timespec, sigmask: ?*const sigset_t) usize { | 1278 | pub fn ppoll(fds: [*]pollfd, n: nfds_t, timeout: ?*timespec, sigmask: ?*const sigset_t) usize { |