Declaraciones públicas de src/time.zig (zkit (SDK consumido)).
apps/docs/generated/zig/zkit.jsonPágina generada desde
zkit@zkit-0.0.0-_fk2iAa4BQCqGFKJeeY9WvMQClX5kiZQ2iOZrVsxVyyN (src/root.zig). No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
zkit/time — relojes y espera para código con hilos propios y sin runtime Io.
Desde 0.16 std.time.nanoTimestamp/std.Thread.sleep viven detrás de la
interfaz Io. Una librería con sus propios std.Thread (daemon, FFI) no
tiene un Io que pasarles, así que cada repo acababa escribiendo su
fn nowNs() sobre clock_gettime (styx tenía cinco copias literales y un
sexto clon en quic-zig sys.nanoTimestamp). Este módulo es la única.
Reglas:
monotonicNs es el reloj de deadlines, timeouts y latencias. Nunca
retrocede. Su cero es arbitrario (arranque de la máquina): no se
compara con fechas.realtimeNs/realtimeSeconds son el reloj de pared. Puede saltar
(NTP, el operador), así que sólo sirve para fechas absolutas que otro
host va a leer (caducidad de un token, un timestamp de log), jamás
para medir una duración.clock_gettime sobre un reloj que el SO
garantiza sólo falla por un bug (puntero o clockid inválido), y eso es
un pánico, no un número falso.time.ns_per_usconst · línea 33
pub const ns_per_us: u64 = std.time.ns_per_usSin ///.
time.ns_per_msconst · línea 34
pub const ns_per_ms: u64 = std.time.ns_per_msSin ///.
time.ns_per_sconst · línea 35
pub const ns_per_s: u64 = std.time.ns_per_sSin ///.
time.monotonicNsfn · línea 48
pub fn monotonicNs() u64Nanosegundos del reloj monotónico (CLOCK_MONOTONIC).
time.monotonicMsfn · línea 54
pub fn monotonicMs() u64Milisegundos del reloj monotónico.
time.realtimeNsfn · línea 61
pub fn realtimeNs() i64Nanosegundos desde la época Unix por el reloj de pared (CLOCK_REALTIME).
Con signo: un reloj mal puesto antes de 1970 es posible y no debe
convertirse en pánico por un cast.
time.realtimeSecondsfn · línea 67
pub fn realtimeSeconds() i64Segundos desde la época Unix por el reloj de pared.
time.realtimeMsfn · línea 72
pub fn realtimeMs() i64Milisegundos desde la época Unix por el reloj de pared.
time.sleepNsfn · línea 77
pub fn sleepNs(ns: u64) voidDuerme al menos ns nanosegundos (reintenta tras EINTR con lo que falte).
time.Deadlinetype · línea 94
pub const Deadline = structPlazo absoluto sobre el reloj monotónico. Sustituye al patrón
waited_ns += POLL_NS (que deriva porque ignora el tiempo real de cada
vuelta) y es lo que consumen sync.Condition.timedWait y las colas.
time.Deadline.fromNowfn · línea 98
pub fn fromNow(timeout_ns: u64) DeadlinePlazo a timeout_ns desde ahora. Satura en lugar de desbordar.
time.Deadline.neverconst · línea 103
pub const never: Deadline = .{ .at_ns = std.math.maxInt(u64) }Plazo que nunca vence.
time.Deadline.expiredfn · línea 105
pub fn expired(self: Deadline) boolSin ///.
time.Deadline.remainingNsfn · línea 110
pub fn remainingNs(self: Deadline) u64Nanosegundos que quedan (0 si ya venció).
time.Stopwatchtype · línea 116
pub const Stopwatch = structCronómetro monotónico: start + readNs/lapNs.
time.Stopwatch.startfn · línea 119
pub fn start() StopwatchSin ///.
time.Stopwatch.readNsfn · línea 123
pub fn readNs(self: Stopwatch) u64Sin ///.
time.Stopwatch.lapNsfn · línea 128
pub fn lapNs(self: *Stopwatch) u64Devuelve lo transcurrido y reinicia.