From 85adf43e03c65ee72786b9143921a6782c8b2b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 21 Sep 2015 23:06:50 +0200 Subject: [PATCH] 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 --- src/unix/thread.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/unix/thread.c b/src/unix/thread.c index 6080cf5f..0c798271 100644 --- a/src/unix/thread.c +++ b/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; }