pthread_cond_timedwait返回EINVAL
来源:互联网 发布:c语言心形图案代码 编辑:程序博客网 时间:2024/06/06 21:38
最近发现程序的business.wait(100); 使用起来造成cpu负载很高
代码如下:
struct timespec delay; if ( !clock_gettime(CLOCK_REALTIME,&delay) ) { delay.tv_sec += (int)(waitmillsseconds / 1000); delay.tv_nsec += (waitmillsseconds % 1000)*1000000; } int err = pthread_cond_timedwait(&cond, &lock, &delay); // err会一直返回EINVAL
后来打印发现出现错误时:
clock_gettime tv_sec=1409711645, tv_nsec=1087094042; // 这里面的tv_nsec的值超过了10的9次方 也就是超过了1秒errno 22 is EINVAL
后来修改:
delay.tv_sec += (int)(waitmillsseconds / 1000); delay.tv_nsec += (waitmillsseconds % 1000)*1000000; if (delay.tv_nsec > 1000000000) {delay.tv_sec += 1;delay.tv_nsec -= 1000000000; }这样修改后就没有问题了
0 0
- pthread_cond_timedwait返回EINVAL
- pthread_cond_timedwait()返回错误值
- pthread_cond_timedwait
- pthread_cond_timedwait()
- pthread_cond_timedwait
- pthread_cond_timedwait
- C/C++:pthread_cond_timedwait阻塞失败(立刻超时返回)
- shmget EINVAL
- pthread_timedjoin,pthread_cond_timedwait
- pthread_cond_timedwait pthread_cond_wait
- pthread_cond_timedwait 实例
- pthread_cond_timedwait 实例
- pthread_cond_timedwait 实例
- 关于pthread_cond_timedwait这个方法
- pthread_cond_timedwait实例代码
- pthread_cond_timedwait 代替sleep
- pthread_cond_wait和pthread_cond_timedwait学习
- 关于pthread_cond_timedwait这个方法
- 数组与指针
- Android学习 图片折叠效果的实现
- 学习OpenCV的学习笔记系列(三)显示图片及视频
- 上传应用程序到App Store 的具体操作流程
- K2 BPM Activity 节点 规则属性
- pthread_cond_timedwait返回EINVAL
- java 集合补充
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- 关于Android SQLite3多线程并发问题,学习笔记。
- ios 自定义Button 不能点击问题
- Yii的URL管理
- wwwwwwwwwwwwww
- zoj 2104 Let the Balloon Rise
- VIM高效率操作 (转载)