htl: Use __hurd_fail () instead of assigning errno

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
Message-Id: <20230520115531.3911877-2-bugaevc@gmail.com>
This commit is contained in:
Sergey Bugaev 2023-05-20 14:55:30 +03:00 committed by Samuel Thibault
parent 9ec31e5727
commit 70d0dda0c1
4 changed files with 9 additions and 18 deletions

View file

@ -19,6 +19,7 @@
#include <semaphore.h>
#include <errno.h>
#include <hurd.h>
#include <pt-internal.h>
int
@ -34,10 +35,7 @@ __sem_destroy (sem_t *sem)
#endif
)
/* There are threads waiting on *SEM. */
{
errno = EBUSY;
return -1;
}
return __hurd_fail (EBUSY);
return 0;
}

View file

@ -19,6 +19,7 @@
#include <semaphore.h>
#include <errno.h>
#include <hurd.h>
#include <pt-internal.h>
int
@ -26,10 +27,7 @@ __sem_init (sem_t *sem, int pshared, unsigned value)
{
#ifdef SEM_VALUE_MAX
if (value > SEM_VALUE_MAX)
{
errno = EINVAL;
return -1;
}
return __hurd_fail (EINVAL);
#endif
struct new_sem *isem = (struct new_sem *) sem;

View file

@ -20,6 +20,7 @@
#include <assert.h>
#include <hurdlock.h>
#include <hurd.h>
#include <pt-internal.h>
@ -35,10 +36,7 @@ __sem_post (sem_t *sem)
do
{
if ((d & SEM_VALUE_MASK) == SEM_VALUE_MAX)
{
errno = EOVERFLOW;
return -1;
}
return __hurd_fail (EOVERFLOW);
}
while (!atomic_compare_exchange_weak_release (&isem->data, &d, d + 1));
@ -51,10 +49,7 @@ __sem_post (sem_t *sem)
do
{
if ((v >> SEM_VALUE_SHIFT) == SEM_VALUE_MAX)
{
errno = EOVERFLOW;
return -1;
}
return __hurd_fail (EOVERFLOW);
}
while (!atomic_compare_exchange_weak_release
(&isem->value, &v, v + (1 << SEM_VALUE_SHIFT)));

View file

@ -19,6 +19,7 @@
#include <semaphore.h>
#include <errno.h>
#include <hurd.h>
#include <pt-internal.h>
int
@ -29,8 +30,7 @@ __sem_trywait (sem_t *sem)
if (__sem_waitfast (isem, 1) == 0)
return 0;
errno = EAGAIN;
return -1;
return __hurd_fail (EAGAIN);
}
weak_alias (__sem_trywait, sem_trywait);