我是靠谱客的博主 含糊乌冬面,最近开发中收集的这篇文章主要介绍android 修改系统时间_修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

346879b5398b31da382e0887ebfdc643.png

介绍

最近修复项目问题时,发现当系统时间往前修改后,会导致sem_timedwait函数一直阻塞。通过搜索了发现

int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);

传入的第二个阻塞时间参数是绝对的时间戳,那么该函数是存在缺陷的。

sem_timedwait存在的缺陷的理由

假设当前系统时间是1565000000(2019-08-05 18:13:20),sem_timedwait传入的阻塞等待的时间戳是1565000100(2019-08-05 18:15:00),那么sem_timedwait就需要阻塞1分40秒(100秒),若在sem_timedwait阻塞过程中,中途将系统时间往前修改成1500000000(2017-07-14 10:40:00),那么sem_timedwait此时就会阻塞2年多! 这就是sem_timedwait存在的缺陷!!

sem_timedwait函数介绍

int sem_timedwait(

最后

以上就是含糊乌冬面为你收集整理的android 修改系统时间_修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析...的全部内容,希望文章能够帮你解决android 修改系统时间_修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部