当前位置: 首页 > news >正文

libevent bufferevent pair 死锁

       使用bufferevent pair遇到的死锁问题。产生死锁的demo可下载。

1.死锁现象

读回调线程栈:
(gdb) bt
#0  0x00007ffff7bcbcc0 in pthread_rwlock_wrlock () from /lib64/libpthread.so.0
#1  0x0000000000402982 in ReadCallback (bev=0x63d240, arg=0x7fffffffe240) at libevent_dead_lock.cpp:14
#2  0x0000000000403c3c in bufferevent_run_deferred_callbacks_locked (cb=<optimized out>, arg=0x63d240) at bufferevent.c:167
#3  0x000000000040bb5c in event_process_active_single_queue (base=base@entry=0x63cc60, activeq=0x63d0b0, max_to_process=max_to_process@entry=2147483647, 
    endtime=endtime@entry=0x0) at event.c:1720
#4  0x000000000040c54f in event_process_active (base=0x63cc60) at event.c:1783
#5  event_base_loop (base=0x63cc60, flags=0) at event.c:2006
#6  0x0000000000402cdc in LibEventMgr::Run (this=0x7fffffffe240) at libevent_dead_lock.cpp:53
#7  0x0000000000402b96 in pthread_func1 (arg=0x7fffffffe240) at libevent_dead_lock.cpp:106
#8  0x00007ffff7bc85f0 in start_thread () from /lib64/libpthread.so.0
#9  0x00007ffff72c184d in clone () from /lib64/libc.so.6
#10 0x0000000000


http://www.mrgr.cn/news/11214.html

相关文章:

  • 【数据分享】2000—2022年我国各省份各教育阶段的学校资产情况(免费获取/50多类指标)
  • 18. 分割dataframe:让数据分析更高效
  • 【YOLOv10改进[Conv]】感受野注意力卷积RFAConv(2024.3)| 使用RFAConv 改进v10目标检测效果 + 含全部代码和详细修改方式
  • C#开发基础之100个常用的C#正则表达式
  • 关于kafka的分区和消费者之间的关系
  • 更改了ip地址怎么改回来
  • Excel技能分享:根据匹配公式设置单元格背景色
  • white-space: pre;与white-space: pre-line;的区别
  • K8S部署MySQL5.7的主从服务
  • Linux系统——服务器长时间训练不间断指令(nohup的简单用法)
  • Bootstrap 4 颜色
  • git flow如何切换到develop
  • (十二)Flink Table API
  • 基于单片机的教室人数自动统计系统设计
  • 白鲸开源中标申万宏源DataOps数据开发运维一体化平台采购项目!
  • 重装系统前如何备份数据?让重装无后顾之忧
  • 原型图和UI的区别与联系
  • 千益畅行,旅游卡,案例分享
  • 基于AT89C51单片机的可手动定时控制的智能窗帘设计
  • Python酷库之旅-第三方库Pandas(102)