diff options
Diffstat (limited to 'src/thread/sem_timedwait.c')
-rw-r--r-- | src/thread/sem_timedwait.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/sem_timedwait.c b/src/thread/sem_timedwait.c index df5f3a6c..b5a60add 100644 --- a/src/thread/sem_timedwait.c +++ b/src/thread/sem_timedwait.c @@ -11,7 +11,7 @@ int sem_timedwait(sem_t *restrict sem, const struct timespec *restrict at) if (!sem_trywait(sem)) return 0; int spins = 100; - while (spins-- && sem->__val[0] <= 0) a_spin(); + while (spins-- && sem->__val[0] <= 0 && !sem->__val[1]) a_spin(); while (sem_trywait(sem)) { int r; |