summaryrefslogtreecommitdiff
path: root/sysdeps/generic/sem-timedwait.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/generic/sem-timedwait.c')
-rw-r--r--sysdeps/generic/sem-timedwait.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sysdeps/generic/sem-timedwait.c b/sysdeps/generic/sem-timedwait.c
index f3d280b..0c52111 100644
--- a/sysdeps/generic/sem-timedwait.c
+++ b/sysdeps/generic/sem-timedwait.c
@@ -39,6 +39,12 @@ __sem_timedwait_internal (sem_t *restrict sem,
return 0;
}
+ if (timeout && (timeout->tv_nsec < 0 || timeout->tv_nsec >= 1000000000))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
/* Add ourselves to the queue. */
self = _pthread_self ();
@@ -50,12 +56,6 @@ __sem_timedwait_internal (sem_t *restrict sem,
{
error_t err;
- if (timeout->tv_nsec < 0 || timeout->tv_nsec >= 1000000000)
- {
- errno = EINVAL;
- return -1;
- }
-
err = __pthread_timedblock (self, timeout);
if (err)
/* We timed out. We may need to disconnect ourself from the