From c8583bbdf1760cdfc2f3c54abaef4c8295c2bef5 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 5 Mar 2022 18:55:49 +0100 Subject: [PATCH] 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. --- src/unix/core.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/unix/core.c b/src/unix/core.c index 459e3c91..c47f0d95 100644 --- a/src/unix/core.c +++ b/src/unix/core.c @@ -651,21 +651,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);