TGViewer
Чайник из Юты Чайник из Юты @irrationalthings · 121 subscribers
Post #314 171
Чайник из Юты https://stackoverflow.com/questions/4724137/epoll-wait-receives-socket-closed-twice-read-recv-returns-0 А вот и мой кейс. Отлично, значит, когда я дочитался до EAGAIN, и в это время сокет отключается - мне может прилететь в догонку ещё один ивент, с EPOLLRDHUP.…
Я так и не понял, какие должны быть причины на появление этого ивента. Но у меня ещё была пара багов помимо этого, из-за чего даже добавлять EPOLLRDHUP в список интересов и специально пропускать такие ивенты особо не помогло. Решил пойти по другому пути

Теперь я просто объявлю общий интерфейс в ev.h, с функцией ev_run(), принимающей все нужные аргументы. Сама имплементация будет одна из нескольких C source файлов, где каждый файл отображает целевую операционную систему. Естественно, каждый будет в соответствующих гардах, чтобы под выбранную целевую платформу компилировалось только то, что нужно. Что, в целом, классическая схема, хоть и, как мне кажется, не самая надёжная.

Из минусов - больше нет штуки с разделением источника ивентов и самой логики ивентлупа. Правда, минус это с очень большой натяжкой, так как при портировании на kqueue я всё равно вынесу парочку общих функций (а-ля обработай один этот ивент - логика абсолютно агностична к платформе и окружению), да и всё равно, рано или поздно, придётся расширяться и на винду. А там iocp, который следует уже модели проактора, в отличии от реактора, как epoll и kqueue. Я пока до конца не разобрался, но ивенты я там буду получать совершенно иным образом. Соответственно, вынести исключительно атомарную логику (а не целый пласт, как это было раньше, где я полностью инкапсулировал весь ивентлуп) является потенциально выигрышным решением.
  • 👍 1
More from @irrationalthings
  1. Sep 21, 2026я хрюкнул
  2. Sep 21, 2026гемини
  3. Sep 15, 2026Тот факт, что между нейронками и компрессорами больше общего, чем может показаться - забав…
  4. Sep 15, 2026"Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressor…
  5. Sep 15, 2026Конечно, они сравнивали со средненькими классифицирующими моделями. Там есть пространство…
  6. Sep 15, 2026GZIP наносит ответный удар Вот мы хотим классифицировать текст. Классическая задача для ML…
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 →