From 9207a00f8eb01b0ad456350078652480757576ad Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Fri, 24 Jun 2016 02:03:35 +1000 Subject: [PATCH] deps: backport 85adf43e from libuv upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: unix: consolidate rwlock tryrdlock trywrlock errors Fold EAGAIN and EBUSY into EBUSY. This makes it consistent across all Unix platforms and Windows. Refs: https://github.com/libuv/libuv/pull/525 PR-URL: https://github.com/libuv/libuv/pull/535 Reviewed-By: Ben Noordhuis PR-URL: https://github.com/nodejs/node-private/pull/54 Reviewed-By: Saúl Ibarra Corretgé --- deps/uv/src/unix/thread.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/deps/uv/src/unix/thread.c b/deps/uv/src/unix/thread.c index 6080cf5f73..0c79827137 100644 --- a/deps/uv/src/unix/thread.c +++ b/deps/uv/src/unix/thread.c @@ -162,10 +162,13 @@ int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock) { int err; err = pthread_rwlock_tryrdlock(rwlock); - if (err && err != EBUSY && err != EAGAIN) - abort(); + if (err) { + if (err != EBUSY && err != EAGAIN) + abort(); + return -EBUSY; + } - return -err; + return 0; } @@ -185,10 +188,13 @@ int uv_rwlock_trywrlock(uv_rwlock_t* rwlock) { int err; err = pthread_rwlock_trywrlock(rwlock); - if (err && err != EBUSY && err != EAGAIN) - abort(); + if (err) { + if (err != EBUSY && err != EAGAIN) + abort(); + return -EBUSY; + } - return -err; + return 0; }