commit | 4f920f685bb4af8400c70383eecf347a35353778 | [log] [tgz] |
---|---|---|
author | David 'Digit' Turner <digit@google.com> | Fri Feb 12 12:50:32 2010 -0800 |
committer | David 'Digit' Turner <digit@google.com> | Fri Feb 12 12:50:32 2010 -0800 |
tree | b48d0f32e745f252a4ad5781e8da60f45415f7de | |
parent | 294dd0b86b1484aec7549663aff5b19c98a4b7fd [diff] [blame] |
Fix sem_post() behaviour to wake up multiple waiting threads.
diff --git a/libc/bionic/semaphore.c b/libc/bionic/semaphore.c index f4eebce..84b9314 100644 --- a/libc/bionic/semaphore.c +++ b/libc/bionic/semaphore.c
@@ -180,7 +180,7 @@ if (sem == NULL) return EINVAL; - if (__atomic_inc((volatile int*)&sem->count) == 0) + if (__atomic_inc((volatile int*)&sem->count) >= 0) __futex_wake(&sem->count, 1); return 0;