Posix: fix event_wait_timed() (#346)

event_wait_timed() was ignoring a timeout of 1000 ms.
Presumably this is because pthread_cond_timedwait() only
considers tv_nsec less than one second.

Convert the timeout in miliseconds to second and nanosecond
components to fix this.

Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
pull/350/head^2
Thomas Pedersen 4 years ago committed by GitHub
parent bad8f01afd
commit 6a84f2c1da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -76,8 +76,8 @@ bool event_wait_timed( struct event * ev,
int ret = 0; int ret = 0;
clock_gettime( CLOCK_REALTIME, &ts ); clock_gettime( CLOCK_REALTIME, &ts );
//ts.tv_sec += ms; ts.tv_sec += ms / 1000;
ts.tv_nsec += (ms * 1000000); ts.tv_nsec += ((ms % 1000) * 1000000);
pthread_mutex_lock( &ev->mutex ); pthread_mutex_lock( &ev->mutex );
while( (ev->event_triggered == false) && (ret == 0) ) while( (ev->event_triggered == false) && (ret == 0) )

Loading…
Cancel
Save