std.Io.Threaded: fix 32-bit overflow in lookupDns

be a little more careful with nanoseconds
This commit is contained in:
Andrew Kelley 2025-10-27 17:03:16 -07:00
parent c8739d6953
commit cc4931b325

View File

@ -5235,7 +5235,7 @@ fn lookupDns(
var now_ts = try clock.now(t_io); var now_ts = try clock.now(t_io);
const final_ts = now_ts.addDuration(.fromSeconds(rc.timeout_seconds)); const final_ts = now_ts.addDuration(.fromSeconds(rc.timeout_seconds));
const attempt_duration: Io.Duration = .{ const attempt_duration: Io.Duration = .{
.nanoseconds = std.time.ns_per_s * @as(usize, rc.timeout_seconds) / rc.attempts, .nanoseconds = (std.time.ns_per_s / rc.attempts) * @as(i96, rc.timeout_seconds),
}; };
send: while (now_ts.nanoseconds < final_ts.nanoseconds) : (now_ts = try clock.now(t_io)) { send: while (now_ts.nanoseconds < final_ts.nanoseconds) : (now_ts = try clock.now(t_io)) {