summaryrefslogtreecommitdiff
path: root/deps/uv/src/win/thread.c
diff options
context:
space:
mode:
authorFedor Indutny <fedor@indutny.com>2014-06-27 04:44:36 +0400
committerFedor Indutny <fedor@indutny.com>2014-06-27 04:44:36 +0400
commit1a1b1a75347a4d68aedefb71b8bacce050b1768b (patch)
tree91c44f684db1e8aacc879e2a9cededbb126eba8d /deps/uv/src/win/thread.c
parent35b9580cd84452dd76aa19715479a47074d1761b (diff)
downloadandroid-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.c8
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;
}