TGViewer
Типичный программист Типичный программист @tproger · 78.2K subscribers
Post #14857 5.15K
Как строго монотонное время помогает ловить ошибки

По документации монотонные часы не идут назад. В реальности ОС иногда нарушает это обещание, поэтому результат системного вызова дополнительно ограничивают предыдущим значением внутри процесса.

В заметке «Considering Strictly Monotonic Time» предлагается усилить защиту: возвращать максимум из показания ОС и предыдущего времени плюс одна наносекунда. Тогда проверку past <= present можно заменить на past < present. Она поймает не только движение времени назад, но и случайную передачу одного и того же значения вместо нового вызова часов.

Ограничение у приёма одно: точности значения должно хватать, чтобы повторные прибавления наносекунды не увели время вперёд. Автор считает наносекундную точность достаточной.
matklad.github.io Considering Strictly Monotonic Time Monotonic time is a frequently used, load bearing abstraction. Monotonicity is often enforced using the following code:
  • 👍 6
  • 🫡 4
  • ❤ 1
  • 👏 1
  • 😢 1
  • 🎉 1
  • 🤓 1
  • 👻 1
  • 🎃 1
  • 🤗 1
  • 💘 1
More from @tproger
  1. Sep 30, 2026Почему ошибки конкурентности годами прячутся и как их искать Один запрос за раз проходит т…
  2. Sep 30, 2026Как устроены 3D-рендерер для Figma и сайт Depth Depth сокращает путь: для примерки 3D-моде…
  3. Sep 29, 202625 российских ИТ-компаний объединились для найма специалистов: ИТ-холдинг Т1 запустил карь…
  4. Sep 29, 2026Что показывает срез вакансий разработчиков в США на 1 сентября 2026 года В срез CronJobs в…
  5. Sep 29, 2026Сентябрь, учебный год, сессия не так далеко, как вы думаете. Это всё про вас? Тогда заглян…
  6. Sep 29, 2026Как собрать генеративное тестирование на Zig в 256 строк Для эксперимента с алгоритмом сог…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →