1. event_base_loop 未进入消息循环,自动退出

解决方法:gdb跟踪到退出的代码,然后查看代码,分析为什么退出,发现是因为没有事件,所以退出

2. 如果client做了connect,但是服务器没有accept,则一直触发事件

解决方法:怀疑是没有边缘触发,strace发现用的确实是epoll,找到epoll设置边缘触发的标志位,在libevent代码中搜索此标志位,找到libevent的标志位,设置即可

3. 调用redis的anetRead,总是失败

解决方法:跟踪代码,发现是调用read时返回了-1,man read,发现非阻塞io读不到数据会返回-1,查看redis代码中的anetRead,发现他没用,而是重新写了一个,并且判断errno=-11时,认为不是错误

相关文章:

  • 2022-12-23
  • 2021-06-21
  • 2021-12-26
  • 2021-08-09
  • 2022-12-23
  • 2022-01-02
  • 2021-09-25
  • 2021-12-16
猜你喜欢
  • 2021-05-28
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2021-12-30
  • 2021-05-16
  • 2021-11-30
相关资源
相似解决方案