首页 > 其他 > 详细

std::mutex找bug解析

时间:2019-03-28 17:54:25      阅读:141      评论:0      收藏:0      [点我收藏+]

最近走了个菜鸟,接手残余项目。

遇到一个问题,这货用std::mutex在websocketpp::server类的on_message函数里面,不断try lock和lock

这里面要注意几个问题:

  1. mutex不能单独unlock,在debug下会跑飞,但是release下不会,好在客户现场用的是release,不然会莫名其妙不断死不知道多少次
  2. mutex应该是线程间同步的原语,在on_message回调里面,好在每次都是同一个线程。没仔细去研究这个server类的实现,要是on_message每次回调不是同一个线程,又是跑飞到天荒地老

这块代码里面有很多问题,trylock和unlock分别放在两个指令响应里面,也就是说,会收到两个报文,一个负责trylock,一个负责unlock

如果客户端发过来一个unlock指令,瞬间跑飞。

这里面需要有一个标记变量,记录是否已经接收trylock

更坑爹的是,这货居然定义了一个单纯的unlock指令,负责客户端解锁,看日志,接收了很多次,我自己在debug模式试了下,飞了,客户现场居然没飞,原来是这个问题。

 

年后一波离职潮,走了些人,不得不谓有点失落。

忽悠人,钱首先给到位,然后再谈价值,谈理想。格局要大,做领导更要设身处地站在菜鸟的角度想。

也是。你不想干实际的活儿了,想安排人干活,也没错,但你要安抚好人心,随便发号指令,难以服众阿。

 

另外一点,开始有点发现渠道为王这个道理,世界上不缺干活的人,缺的是能促成一件事件的人,相当于打通社会的通道,只要你能从0变成1,剩下的让干活的人负责。

从社会的角度上看,不缺把1变成100的人,但缺把0变成1的人。

std::mutex找bug解析

原文:https://www.cnblogs.com/shawnc24/p/10616558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!