diff options
author | Fedor Indutny <fedor@indutny.com> | 2014-06-27 04:44:36 +0400 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2014-06-27 04:44:36 +0400 |
commit | 1a1b1a75347a4d68aedefb71b8bacce050b1768b (patch) | |
tree | 91c44f684db1e8aacc879e2a9cededbb126eba8d /deps/uv/src/win/thread.c | |
parent | 35b9580cd84452dd76aa19715479a47074d1761b (diff) | |
download | android-node-v8-1a1b1a75347a4d68aedefb71b8bacce050b1768b.tar.gz android-node-v8-1a1b1a75347a4d68aedefb71b8bacce050b1768b.tar.bz2 android-node-v8-1a1b1a75347a4d68aedefb71b8bacce050b1768b.zip |
deps: update libuv to v0.11.26
Diffstat (limited to 'deps/uv/src/win/thread.c')
-rw-r--r-- | deps/uv/src/win/thread.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/deps/uv/src/win/thread.c b/deps/uv/src/win/thread.c index 5178f8f9ab..ccc5579fa7 100644 --- a/deps/uv/src/win/thread.c +++ b/deps/uv/src/win/thread.c @@ -660,7 +660,9 @@ void uv_barrier_destroy(uv_barrier_t* barrier) { } -void uv_barrier_wait(uv_barrier_t* barrier) { +int uv_barrier_wait(uv_barrier_t* barrier) { + int serial_thread; + uv_mutex_lock(&barrier->mutex); if (++barrier->count == barrier->n) { uv_sem_wait(&barrier->turnstile2); @@ -672,7 +674,8 @@ void uv_barrier_wait(uv_barrier_t* barrier) { uv_sem_post(&barrier->turnstile1); uv_mutex_lock(&barrier->mutex); - if (--barrier->count == 0) { + serial_thread = (--barrier->count == 0); + if (serial_thread) { uv_sem_wait(&barrier->turnstile1); uv_sem_post(&barrier->turnstile2); } @@ -680,6 +683,7 @@ void uv_barrier_wait(uv_barrier_t* barrier) { uv_sem_wait(&barrier->turnstile2); uv_sem_post(&barrier->turnstile2); + return serial_thread; } |