From 702cfb3363c69e1a94ca711fa0e0339db1489b48 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Mon, 28 Feb 2005 01:52:50 +0000 Subject: Fix reported bug in error return behavior of sem_timedwait(). --- libpthread/linuxthreads/semaphore.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libpthread/linuxthreads') diff --git a/libpthread/linuxthreads/semaphore.c b/libpthread/linuxthreads/semaphore.c index 0038ddd2a..5be1f5316 100644 --- a/libpthread/linuxthreads/semaphore.c +++ b/libpthread/linuxthreads/semaphore.c @@ -226,7 +226,8 @@ int sem_timedwait(sem_t *sem, const struct timespec *abstime) /* The standard requires that if the function would block and the time value is illegal, the function returns with an error. */ __pthread_unlock(&sem->__sem_lock); - return EINVAL; + __set_errno (EINVAL); + return -1; } /* Set up extrication interface */ @@ -264,7 +265,8 @@ int sem_timedwait(sem_t *sem, const struct timespec *abstime) if (was_on_queue) { __pthread_set_own_extricate_if(self, 0); - return ETIMEDOUT; + __set_errno (ETIMEDOUT); + return -1; } /* Eat the outstanding restart() from the signaller */ -- cgit v1.2.3