diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2005-02-28 01:52:50 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2005-02-28 01:52:50 +0000 |
commit | 702cfb3363c69e1a94ca711fa0e0339db1489b48 (patch) | |
tree | 441fa4db5e8ed032a62ec2713e055165fa55ac1f | |
parent | 5533874b8f94639fca8d465586d744907d9b969e (diff) |
Fix reported bug in error return behavior of sem_timedwait().
-rw-r--r-- | libpthread/linuxthreads/semaphore.c | 6 |
1 files changed, 4 insertions, 2 deletions
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 */ |