- 收藏
- 点赞
- 分享
- 举报
Hi2516DV300芯片平台下condition_variable超时等待的问题
【问题描述】:
使用c++11标准中的std::condition_variable,当使用wait_for/wait_until等待超时,此时往前调整系统时钟,可造成wait_for/wait_until等待异常;如:wait_for等待3秒,此时系统时间往前调整10分钟,可造成wait_for在10分3秒后才会退出,从而对软件代码逻辑造成影响。具体参考测试见附件test.cpp。超时时间应该不受系统时间影响,我们在其他平台测试过,见最后的横向对比测试。
编译指令为:arm-himix200-linux-g++ -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations —std=c++11 -Wall -pthread -lm -ldl test.cpp
【所处环境】:
1.先运行程序
2,输入测试指令
~ # date
Thu Jan 1 01:19:23 UTC 1970
~ # date -s “01:18:23”
Thu Jan 1 01:18:23 UTC 1970
【初步分析】:
时间向前调整,std::condition_variable就会卡住,然后等到时间回到当前之后,std::condition_variable才能正常
【定位信息】:
其他平台横向测试对比:
平台:3516Av100
编译器:arm-hisiv300-linux-g++
测试结果:向前调整时间不会对状态变量的等待时间有任何影响;
平台:3519V101
编译器:arm-hisiv500-linux
测试结果:向前调整时间不会对状态变量的等待时间有任何影响;
复现条件:将系统时间向前调整
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
-
2020-09-23 16:38:22
-
2020-11-25 16:24:14
-
2019-05-29 14:31:13
-
2018-12-24 16:46:16
-
2020-06-13 11:57:48
-
2023-10-17 15:51:55
-
2020-06-12 15:21:19
-
2020-03-05 18:42:14
-
2019-09-29 13:55:54
-
2019-09-29 13:57:27
-
2023-08-23 16:36:13
-
2020-04-17 17:28:00
-
2019-06-05 15:24:15
-
2020-03-24 14:51:36
-
2021-04-26 10:13:26
-
2020-05-15 11:20:03
-
2022-06-08 18:36:33
-
2020-08-10 11:01:30
-
2016-09-09 16:07:10
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明