diff options
author | cjihrig <cjihrig@gmail.com> | 2019-12-03 22:19:16 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2019-12-06 11:14:59 -0500 |
commit | 5d2944d7b65840766bd8c4efef0af4e2680c0166 (patch) | |
tree | 76d1bd0017ca8667aeb34767fec599cdf414121d /deps/uv/src/unix/os390-syscalls.c | |
parent | 09ea00b0c117d219ec7017e7125601e9e26f84b9 (diff) | |
download | android-node-v8-5d2944d7b65840766bd8c4efef0af4e2680c0166.tar.gz android-node-v8-5d2944d7b65840766bd8c4efef0af4e2680c0166.tar.bz2 android-node-v8-5d2944d7b65840766bd8c4efef0af4e2680c0166.zip |
deps: upgrade to libuv 1.34.0
Notable changes:
- Fix handling of large files in uv_fs_copyfile().
Fixes: https://github.com/nodejs/node/issues/30085
- Fix Android build errors.
- uv_sleep() has been added.
- uv_interface_addresses() IPv6 netmask support has been fixed.
Fixes: https://github.com/nodejs/node/issues/30504
- uv_fs_mkstemp() has been added.
PR-URL: https://github.com/nodejs/node/pull/30783
Fixes: https://github.com/nodejs/node/issues/30085
Fixes: https://github.com/nodejs/node/issues/30504
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/uv/src/unix/os390-syscalls.c')
-rw-r--r-- | deps/uv/src/unix/os390-syscalls.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/deps/uv/src/unix/os390-syscalls.c b/deps/uv/src/unix/os390-syscalls.c index 1040d66979..d9abdebaee 100644 --- a/deps/uv/src/unix/os390-syscalls.c +++ b/deps/uv/src/unix/os390-syscalls.c @@ -23,11 +23,11 @@ #include "os390-syscalls.h" #include <errno.h> #include <stdlib.h> -#include <assert.h> #include <search.h> #include <termios.h> #include <sys/msg.h> +#define CW_INTRPT 1 #define CW_CONDVAR 32 #pragma linkage(BPX4CTW, OS) @@ -350,27 +350,34 @@ int nanosleep(const struct timespec* req, struct timespec* rem) { unsigned secrem; unsigned nanorem; int rv; - int rc; + int err; int rsn; nano = (int)req->tv_nsec; seconds = req->tv_sec; - events = CW_CONDVAR; + events = CW_CONDVAR | CW_INTRPT; + secrem = 0; + nanorem = 0; #if defined(_LP64) - BPX4CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &rc, &rsn); + BPX4CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &err, &rsn); #else - BPX1CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &rc, &rsn); + BPX1CTW(&seconds, &nano, &events, &secrem, &nanorem, &rv, &err, &rsn); #endif - assert(rv == -1 && errno == EAGAIN); + /* Don't clobber errno unless BPX1CTW/BPX4CTW errored. + * Don't leak EAGAIN, that just means the timeout expired. + */ + if (rv == -1) + if (err != EAGAIN) + errno = err; - if(rem != NULL) { + if (rem != NULL && (rv == 0 || err == EINTR || err == EAGAIN)) { rem->tv_nsec = nanorem; rem->tv_sec = secrem; } - return 0; + return rv; } |