src/lib/framework/src/driverFramework.cpp学习
- int Framework::initialize()
- {
- DF_LOG_DEBUG("Framework::initialize");
- g_framework = new SyncObj; //这个应该是各同步类
- if (!g_framework) {
- DF_LOG_ERR("ERROR: falled to allocate g_framework");
- return -1;
- }
- g_run_status = new RunStatus; //这个是状态标识
- if (!g_run_status) {
- DF_LOG_ERR("g_run_status allocation failed");
- return -2;
- }
- struct timespec ts = {};
- int ret = absoluteTime(ts); //获取绝对时间
- if (ret != 0) {
- DF_LOG_ERR("ERROR: absoluteTime returned (%d)", ret);
- return -4;
- }
- ret = HRTWorkQueue::instance().initialize(); //初始化worker的线程
- if (ret < 0) {
- return ret - 10;
- }
- DF_LOG_DEBUG("Calling DevMgr::initialize");
- ret = DevMgr::initialize(); //加了一个标志位true
- if (ret < 0) {
- return ret - 20;
- }
- DF_LOG_DEBUG("Calling WorkMgr::initialize");
- ret = WorkMgr::initialize(); //这里也加了一个标志位true
- if (ret < 0) {
- return ret - 30;
- }
- return 0;
- }
- class SyncObj
- {
- public:
- SyncObj(); //构造函数
- ~SyncObj() = default;
- void lock(); //对Mutex上锁
- void unlock(); //解锁
- // Returns 0 on success, ETIMEDOUT on timeout //返回0成功, ETIMEDOUT是超时
- // Use timeout_us = 0 for blocking wait //使用timeout_us =0作为阻塞等待
- int waitOnSignal(unsigned long timeout_us);
- void signal();
- private:
- pthread_mutex_t m_lock{}; //这个大括号是C++11,统一初始化
- pthread_cond_t m_new_data_cond{};
- };
src/lib/framework/src/driverFramework.cpp学习的更多相关文章
- laravel5.5 使用alipay SDK报错Cannot redeclare Encrypt() (previously declared in ../vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:448)
错误现象: 在laravel5.5 中,使用alipaySDK 报错: Cannot redeclare Encrypt() (previously declared in ../vendor/lar ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)
题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion
本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...
- <CPP学习>第一天 第一个CPP程序 hello word
由于我是计算机类嵌入式专业的大一学生,之前一直使用的是生万物的C语言,了解了其过程性语言的特性及其基础语法,在大一下学期期末阶段想自学一下C++,其实在开学初就买了一本C++ Primer,但由于各种 ...
- Entity Framework 6源码学习--设置调试EF环境
下载源代码 打开https://github.com/aspnet/EntityFramework6下载源代码. 建立调试解决方案 建立一个EntityFramework.Sample.sln在Ent ...
- 关于为什么window.frames[0].src不能获取src
在DOM文档对象模型中,window对象处于最高层,而框架除了是当前窗体的一个节点外,本身也是独立window对象,当frames作为window对象时,有name属性, 而没有src属性,只有作为节 ...
- 如何在项目中引入 #include .h、.lib、 .dll、.cpp (转)
源:http://blog.csdn.net/vippolka/article/details/8552735 在项目中引入.h..lib和dll.以及.cpp 1..h的引入 解决办法1:把 XX ...
- java 正则表达式获得html字符串中<img src>中的src中的url地址
public static Set<String> getImgStr(String htmlStr) { Set<String> pics = new HashSet< ...
随机推荐
- 详解SQL Server 2008工具SQL Server Profiler
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 1.图形化监视SQL Server查询: 2.在后台收集查询信息: 3.分析性能: 4.诊 ...
- POJ 3481 Double Queue (treap模板)
Description The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Bucharest ...
- CodeForces - 1051D (线性DP)
题目:https://codeforces.com/problemset/problem/1051/D 题意:一个2行n列的矩形,上面有黑白块,然后问你怎么布置才能有k个连通块,问有多少种方案数 思路 ...
- DZY Loves Chemistry
DZY Loves Chemistry time limit per test 1 second memory limit per test 256 megabytes input standard ...
- mount -o
我们的Linux系统在无法启动时候,通常需要进入单用户模式下进行修改一些配置文件,或调整一些参数方可.但是在进入单用户模式后,我们的/文件系统是只读模式,无法进行修改,那么这个时候我们就需要用到一条命 ...
- 五. jenkins部署springboot项目(2)--windows环境--服务
前提:jenkins和springboot运行在同一台机器 springboot 通过winsw部署为服务 winsw 下载地址:https://github.com/kohsuke/winsw/re ...
- I2C总线协议详解
I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线产生于在80年代,最初为音 ...
- AST7D08 心率计
接线: 1.GND 2.+3.3V 3.RST 4. 5.CS 6.READY 7.DI 8.DO 9.CLK
- python的列表 元组 字典
列表和元组都是序列,是数据元素的集合,数据元素可以是数值.字符串,布尔值.对象等. 一.列表:用方括号定义[] 空列表 names = [] 带值的列表 names = ["bill&quo ...
- do_mmap解读
1: unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 2: unsigned long len, unsigned ...