Commit 0787d354 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Make sure we use the same clock for condition variable

Otherwise, it'll screw up completely when we add vlc_cond_timedwait
parent f9873719
......@@ -504,12 +504,10 @@ static inline int __vlc_cond_wait( const char * psz_file, int i_line,
# 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 );
......
......@@ -457,7 +457,19 @@ int __vlc_cond_init( vlc_object_t *p_this, vlc_cond_t *p_condvar )
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() */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment