From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 5 Mar 2022 18:55:49 +0100 Subject: unix: simplify uv__cloexec_fcntl() (#3492) FD_CLOEXEC is the only defined flag for fcntl(F_SETFD) so don't bother getting the status of that flag first with fcntl(F_GETFD), just set it. diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c index a6425294086ff2f1435fdd6866380d3aaaf68200..6cd519ad5b3e7af8f5c71b18a59b88458a233f15 100644 --- a/deps/uv/src/unix/core.c +++ b/deps/uv/src/unix/core.c @@ -649,21 +649,9 @@ int uv__cloexec_fcntl(int fd, int set) { int flags; int r; - do - r = fcntl(fd, F_GETFD); - while (r == -1 && errno == EINTR); - - if (r == -1) - return UV__ERR(errno); - - /* Bail out now if already set/clear. */ - if (!!(r & FD_CLOEXEC) == !!set) - return 0; - + flags = 0; if (set) - flags = r | FD_CLOEXEC; - else - flags = r & ~FD_CLOEXEC; + flags = FD_CLOEXEC; do r = fcntl(fd, F_SETFD, flags);