我用 libevent 制作的大多数应用程序都涉及一个读取回调,每当为请求打开一个新连接时,我都会使用 ::event_new()
分配一个新事件,然后将该事件添加到通过 ::event_add()
但这样做的问题是,每次打开新请求时,我都会分配内存并将其添加到事件循环中,而实际上我应该共享文件描述符的回调和事件。授予内存分配不是此类应用程序的瓶颈,libevent 是否提供某种方式来与多个文件描述符共享事件?
最佳答案
你不应该在文件描述符之间共享事件。这会在您的应用程序中造成困惑。 event_new()
创建一个附加到您的文件描述符的事件。
您可以尝试使用 event_assign()
重新分配消耗的事件,但 libevent 文档明确指出不推荐这样做。此外,在某种类型的池中管理花费的事件可能并不像看起来那么微不足道,并且可能不会有任何明显的性能提升。
关于c++ - 如何在 libevent 中共享回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580743/