37 lines
1 KiB
Diff
37 lines
1 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Ben Noordhuis <info@bnoordhuis.nl>
|
||
|
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);
|