- 收藏
- 点赞
- 分享
- 举报
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. 内容
- 缩进内容
- 图片
-
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
-
2019-06-05 15:24:15
-
2023-08-23 16:36:13
-
2020-04-17 17:28:00
-
2021-04-26 10:13:26
-
2020-05-15 11:20:03
-
2020-03-24 14:51:36
-
2022-06-08 18:36:33
-
2018-04-14 15:01:04
-
2018-06-09 12:59:09
-
5hisi3516cv610 + gc4336p 夜晚很模糊
-
5AIISP(功能演示,SC4336P为BGGR,强制转RGGB,会导致颜色异常)
-
5rv1106使用luckfox的SDK,设备树和驱动都写好了,结果设备文件没有生成
-
5海思3516cv610中如何进行SD卡升级,根据官方文档操作,烧录进板子时,走的默认uboot,没有执行uboot升级。
-
5G610Q-IPC-38E 夜晚很暗 有什么办法解决吗 已经补光了
-
10转换模型时,SoC版本里没显示hi3516cv610芯片
-
5hisi3516cv610 使用 yolov8n 模型训练 要如何提高 这里识别的是人
-
10有人在海思平台接过SC035HGS吗
-
5关于hi3519dv500,以SD卡虚拟 U 盘操作
-
5ss928 sample_venc代码移植到openEuler24.03上执行报错 [sample_comm_vi_start_dev]-1068: vi set dev attr failed wi
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明

微信扫码分享
QQ好友