首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

请问一上关于条件变量的一个有关问题

2012-10-20 
【求助】请教一下关于条件变量的一个问题。请问一下pthread_cond_timedwait 在什么情况下,超时时间到了没返回

【求助】请教一下关于条件变量的一个问题。
请问一下pthread_cond_timedwait 在什么情况下,超时时间到了没返回?现在遇到了一个比较奇怪的问题。我设置的是超时时间是当前时间+5秒 但是一直阻塞在timedwait,时间超过了也没返回。之前有pthread_mutex_lock的。



[解决办法]
在CU问即可,这两边我都在混。
[解决办法]
无代码,无真相!

简单例子

C/C++ code
#include <stdio.h>#include <time.h>#include <pthread.h>pthread_mutex_t mutex =  PTHREAD_MUTEX_INITIALIZER;pthread_cond_t cond = PTHREAD_COND_INITIALIZER;int main(int argc, char *argv[]){        struct timespec ts;        ts.tv_sec = 5 + time(NULL);        ts.tv_nsec = 0;        pthread_mutex_lock(&mutex);        system("date '+%H:%M:%S'");        pthread_cond_timedwait(&cond, &mutex, &ts);        system("date '+%H:%M:%S'");        pthread_mutex_unlock(&mutex);        clock_gettime(CLOCK_REALTIME, &ts);        ts.tv_sec += 5;        pthread_mutex_lock(&mutex);        system("date '+%H:%M:%S'");        pthread_cond_timedwait(&cond, &mutex, &ts);        system("date '+%H:%M:%S'");        pthread_mutex_unlock(&mutex);        return 0;} 

热点排行