Zig's Io.Threaded: как отменить блокирующий syscall с помощью сигналов
Zig's Io.Threaded Is Neat
В статье рассматривается реализация интерфейса Io.Threaded в Zig, которая использует обычные потоки и блокирующие системные вызовы, но при этом полностью поддерживает отмену операций. Автор объясняет, как с помощью сигналов и флагов в общей памяти можно прервать заблокированный в ядре поток, и сравнивает этот подход с механизмами в Java и pthread_cancel. Также обсуждается различие между конкурентностью и параллелизмом и то, как Zig разделяет асинхронность и конкурентность на уровне интерфейса.
Отмена — это не ошибка не потому, что это «счастливая случайность», а потому, что, наоборот, ошибка — это отмена плюс полезная нагрузка.
- _old_dude_
Ох, это заканчивается слишком рано, хочется читать ещё!
- lll-o-lll
Я пишу на Rust, но есть ли причина делать это на Zig? Что он даёт по сравнению с Rust? Есть ли что-то ощутимое для конечного пользователя или разработчика, использующего ИИ-ассистированную разработку?
- two_handfuls
Я знаю, что синтаксис на самом деле не важен, но синтаксис Zig просто так себе. Он очень многословен и странно выбран из того, что уже существует. Код на Zig обычно трудно читать, потому что он очень шумный и содержит странные вещи, которых нет в других языках без всякой причины.