pthread_cond_timewait用来让线程睡眠无效?

inline static void
thread_sleep(long int sec, long int milsec)
{
        pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
        pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
        struct timespec time;
        bzero(&time, sizeof(struct timespec));
        time.tv_sec = sec;
        time.tv_nsec = milsec * 1000000;
        pthread_mutex_lock(&mutex);
        pthread_cond_timedwait(&cond, &mutex, &time);
        pthread_mutex_unlock(&mutex);
        pthread_mutex_destroy(&mutex);
        pthread_cond_destroy(&cond);

}

这么一个函数,发现根本无法让线程阻塞,直接就过去了

作者: morocco   发布时间: 2011-01-27

pthread_cond_timedwait的时间参数是绝对时间,不是相对时间,你要用gettimeofday拿到现在的时间再加上interval

我查到了,呵呵

作者: morocco   发布时间: 2011-01-27