Otherwise, it'll screw up completely when we add vlc_cond_timedwait
# ifdef DEBUG
/* In debug mode, timeout */
- struct timeval now;
struct timespec timeout;
- gettimeofday( &now, NULL );
- timeout.tv_sec = now.tv_sec + THREAD_COND_TIMEOUT;
- timeout.tv_nsec = now.tv_usec * 1000;
+ clock_gettime( CLOCK_MONOTONIC, &now );
+ timeout.tv_sec += THREAD_COND_TIMEOUT;
i_result = pthread_cond_timedwait( &p_condvar->cond, &p_mutex->mutex,
&timeout );
return 0;
#elif defined( PTHREAD_COND_T_IN_PTHREAD_H )
- return pthread_cond_init( &p_condvar->cond, NULL );
+ pthread_condattr_t attr;
+ int ret;
+
+ ret = pthread_condattr_init (&attr);
+ if (ret)
+ return ret;
+
+ /* This must be the same clock as the one in mtime.c */
+ pthread_condattr_setclock (&attr, CLOCK_MONOTONIC);
+
+ ret = pthread_cond_init (&p_condvar->cond, &attr);
+ pthread_condattr_destroy (&attr);
+ return ret;
#elif defined( HAVE_CTHREADS_H )
/* condition_init() */