Какой тред у меня блокируется? О чем вы говорите?Ну, вы говорите про
функцию с вечным циклом?, разве вечный цикл не подразумевает блокировку треда?
P.S. не заметил особой разницы в трудозатратах между select и epoll.Вот об этом я и говорю, в общем то смысле. Если вы не заметили, зачем вам нужен epoll, значит вы, вероятно, его используете не для того, для чего он предназначен, а это явный оверкилл. Как я понимаю, вы epoll'ом только ждёте коннекта, а не мультиплексируете IO в широком смысле, не используете кастомные ивенты, и т. п. для чего он предназначен, собственно, если это так, то ту же задачу исполнят блокирующие сокеты с меньшими усилиями. Если я не правильно вас понял, то опишите подробнее, что у вас за архитектура и зачем вам в блокирующемся треде публичные методы...
один тип должен обрабатывать самКак epoll может обрабатывать сообщения, если его задача их просто принимать/доставлять? Разделите обязанности, в этом классе максимум должна быть стейтмашина для принятия асинхронных пакетов и сборки их в конкретное сообщение. Дальше уже, когда сообщение готово, передавайте его куда угодно, хоть в другой тред, хоть в другое приложение.
Например, вот у меня 4к монитор и околотоповая видеокарта, и я ещё не видел современную игру, которая бы перманентно выдавала на нём не ниже 30 фпс, не говоря уже о 60-ти. Посмотрите тесты GTX1080Ti, которая под 70к будет стоить у нас. Единственная ААА-игра, которая в 4к выдала больше 60фпс — это Doom.
Встроенная в этих играх выдаёт 5-6 фпс, например, если вообще запустится. Так что, смотря, что вам нужно. На встроенных на максималках идут игры до 2005 года, примерно. А на современных играх даже топовые не выдают стабильный фпс, не говоря уже про 144 или 240 Гц, и прочие навороты.
При этом вы пишете про линукс... На линуксах работают, а не играют. Для работы хватит и встроенной. А для игр вы бы хотя бы бюджет указали.