diff --git a/include/posix/pthread.h b/include/posix/pthread.h index cd96f26ac7c..fc75eaa7c4d 100644 --- a/include/posix/pthread.h +++ b/include/posix/pthread.h @@ -224,7 +224,7 @@ int pthread_mutex_unlock(pthread_mutex_t *m); */ int pthread_mutex_timedlock(pthread_mutex_t *m, - const struct timespec *to); + const struct timespec *abstime); /** * @brief POSIX threading compatibility API diff --git a/lib/posix/pthread_mutex.c b/lib/posix/pthread_mutex.c index 414ad349acc..531092b7de1 100644 --- a/lib/posix/pthread_mutex.c +++ b/lib/posix/pthread_mutex.c @@ -9,6 +9,8 @@ #include #include +s64_t timespec_to_timeoutms(const struct timespec *abstime); + #define MUTEX_MAX_REC_LOCK 32767 /* @@ -73,9 +75,10 @@ int pthread_mutex_trylock(pthread_mutex_t *m) * See IEEE 1003.1 */ int pthread_mutex_timedlock(pthread_mutex_t *m, - const struct timespec *to) + const struct timespec *abstime) { - return acquire_mutex(m, _ts_to_ms(to)); + s32_t timeout = (s32_t)timespec_to_timeoutms(abstime); + return acquire_mutex(m, timeout); } /**