platforms: use CLOCK_MONOTONIC

For the non-lockstep case we want to use CLOCK_MONOTONIC if possible.
This commit is contained in:
Julian Oes 2018-12-09 12:39:06 +01:00
parent d94748c831
commit 06c5037025
2 changed files with 8 additions and 1 deletions

View File

@ -58,6 +58,12 @@ int px4_sem_init(px4_sem_t *s, int pshared, unsigned value)
pthread_cond_init(&(s->wait), nullptr);
pthread_mutex_init(&(s->lock), nullptr);
// We want to use CLOCK_MONOTONIC if possible.
pthread_condattr_t attr;
pthread_condattr_init(&attr);
pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
pthread_cond_init(&(s->wait), &attr);
return 0;
}

View File

@ -379,7 +379,8 @@ extern "C" {
// Get the current time
struct timespec ts;
// px4_sem_timedwait is implemented using CLOCK_MONOTONIC.
// px4_sem_timedwait is implemented using CLOCK_MONOTONIC,
// at least for lockstep, on Qurt and on Linux.
px4_clock_gettime(CLOCK_MONOTONIC, &ts);
// Calculate an absolute time in the future