Большинство приложений, которые я сделал с помощью libevent, включают один обратный вызов чтения, и всякий раз, когда для запроса открывается новое соединение, я выделяю новое событие с помощью ::event_new()
, а затем добавляю это событие в базу событий через ::event_add()
Но проблема в том, что каждый раз, когда открывается новый запрос, я выделяю память и добавляю ее в цикл событий, тогда как на самом деле я должен совместно использовать обратные вызовы и события для файловых дескрипторов. Предоставленное выделение памяти не является узким местом для такого приложения, предлагает ли libevent какой-то способ обмена событиями с несколькими файловыми дескрипторами?
sharing callbacks and events for file descriptors
в вашем вопросе? Выделение памяти неизбежно для сохранения состояния соединения для обработки. Состояниеevent
полностью отличается от любого другого события. Как вы можете поделиться этим для достижения различных функций? Иfile descriptors
, когда они не используются (закрыты), повторно используются ОС дляselect
,poll
,epoll
и т. д. Не могли бы вы уточнить, что именно вы хотите сделать? - person Azeem   schedule 16.06.2017