diff options
Diffstat (limited to 'src/thread/pthread_once.c')
-rw-r--r-- | src/thread/pthread_once.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/thread/pthread_once.c b/src/thread/pthread_once.c index e01f6d48..2eb0f932 100644 --- a/src/thread/pthread_once.c +++ b/src/thread/pthread_once.c @@ -3,7 +3,7 @@ static void undo(void *control) { a_store(control, 0); - __wake(control, 1, 0); + __wake(control, 1, 1); } int pthread_once(pthread_once_t *control, void (*init)(void)) @@ -25,10 +25,10 @@ int pthread_once(pthread_once_t *control, void (*init)(void)) pthread_cleanup_pop(0); a_store(control, 2); - if (waiters) __wake(control, -1, 0); + if (waiters) __wake(control, -1, 1); return 0; case 1: - __wait(control, &waiters, 1, 0); + __wait(control, &waiters, 1, 1); continue; case 2: return 0; |