当前位置:   article > 正文

百度自动驾驶apollo源码解读8:/cyber/sysmo 模块_自动驾驶 apollo 源码分析系列

自动驾驶 apollo 源码分析系列

SysMo是一个用DECLARE_SINGLETON宏实现的单例类,在公开函数cyber::Init里面执行了SysMo::Instance进行实例化,SysMo构造函数执行了自己的Start函数,检测环境变量sysmo_start的值是否为1,若为1则开启一个线程不停的调用scheduler::Instance()->CheckSchedStatus,调用间隔为100毫秒,上述CheckSchedStatus函数执行逻辑是遍历所有执行器的快照状态,是否为空闲,若在干活则输出干了多长时间了以及协程的名字,线程的id。在公开函数cyber::Clear()里面调用了SysMo::CleanUp(),CleanUp会调用SysMo的Shutdown函数,从而释放相关资源。
境变量sysmo_start设置信息在/apollo/cyber/setup.bash里面,里面有一句export sysmo_start=0,将0改写为1重启docker或者执行命令

source /apollo/cyber/setup.bash

即可得到环境变量。查看方式

env | grep "sysmo_start"

整体来看本篇有点灌水,因为整个模块就一个类过于简单,写篇博客去研究大可不必,但是apollo系列文章每周更新一次,已连续7周,本周断更有点难受,本周主要主要更新了/cyber/scheduler模块,没有时间研究更多的源代码,本篇也属于调度机制的模块之一。调度模块研究到此告一段落,接下来的文章研究下apollo的通信机制和原理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/414070
推荐阅读
相关标签
  

闽ICP备14008679号