Python 3.13+Linuxosфункция
os.timerfd_settime_ns
os — события и таймеры (fd)
Как timerfd_settime, но в наносекундах (int). Доступно на Linux.
Синтаксис
os.timerfd_settime_ns(...)
Делает то же, что timerfd_settime, но принимает целые наносекунды. Это избавляет от погрешности float при точных периодах: 0.1 секунды в float не представимы точно, а 100_000_000 наносекунд — представимы.
Примеры
import os, time
fd = os.timerfd_create(time.CLOCK_MONOTONIC) # → ? только Linux: дескриптор таймера
print(os.timerfd_settime_ns(fd, initial=1_000_000_000, interval=250_000_000)) # → (0, 0) — прежние значения в наносекундах; старт через 1 с, период 0.25 с
print(int.from_bytes(os.read(fd, 8), 'little')) # → 1 — чтение ждало первого срабатывания
print(os.timerfd_settime_ns(fd, initial=0, interval=0)) # → ? только Linux: примерно (250000000, 250000000) — прежние остаток и период; таймер выключен
os.timerfd_settime_ns(fd, initial=0.5) # → TypeError — нужны целые наносекунды, дробные секунды принимает os.timerfd_settime
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности