diff --git a/include/posix/pthread.h b/include/posix/pthread.h index 19846b93c77..cd96f26ac7c 100644 --- a/include/posix/pthread.h +++ b/include/posix/pthread.h @@ -124,7 +124,7 @@ int pthread_cond_wait(pthread_cond_t *cv, pthread_mutex_t *mut); * See IEEE 1003.1 */ int pthread_cond_timedwait(pthread_cond_t *cv, pthread_mutex_t *mut, - const struct timespec *to); + const struct timespec *abstime); /** * @brief POSIX threading compatibility API diff --git a/lib/posix/pthread_cond.c b/lib/posix/pthread_cond.c index 7bde01ee957..d6e839247a9 100644 --- a/lib/posix/pthread_cond.c +++ b/lib/posix/pthread_cond.c @@ -9,6 +9,8 @@ #include #include +s64_t timespec_to_timeoutms(const struct timespec *abstime); + static int cond_wait(pthread_cond_t *cv, pthread_mutex_t *mut, int timeout) { __ASSERT(mut->lock_count == 1U, ""); @@ -73,8 +75,9 @@ int pthread_cond_wait(pthread_cond_t *cv, pthread_mutex_t *mut) } int pthread_cond_timedwait(pthread_cond_t *cv, pthread_mutex_t *mut, - const struct timespec *to) + const struct timespec *abstime) { - return cond_wait(cv, mut, _ts_to_ms(to)); + s32_t timeout = (s32_t)timespec_to_timeoutms(abstime); + return cond_wait(cv, mut, timeout); }