我有一个多线程应用程序,其中每个线程创建自己的bufferevent和一个单独的套接字,通过tcp与另一个服务器应用程序通信。
服务器端的bufferevent_write永远不会失败。
但是有时候在客户端读取回调不会被调用。
在每个bufferevent_write之后的服务器端,我在检查bufferevent_write成功后也执行bufferevent_flush。
我使用的是evthread_use_windows_threads()和BEV_OPT_THREADSAFE。
我注意到在bufferevent_flush之后每次发送服务器端之后添加一个延迟有助于我的读取回调被大部分时间调用但偶尔我仍然会看到问题,即使有延迟。 需要一些指导 帮助调试它。
谢谢!