commit 265092c55d40f362a521eee97676e0d51ef17800
parent cc31550d01415181e70150ad3e9043d049b07a09
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date: Mon, 23 Nov 2020 12:36:34 +0000
Save syscalls on coe and ndelay_on
Diffstat:
4 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/libstddjb/coe.c b/src/libstddjb/coe.c
@@ -6,6 +6,5 @@
int coe (int fd)
{
int flags = fcntl(fd, F_GETFD, 0) ;
- if (flags < 0) return -1 ;
- return fcntl(fd, F_SETFD, flags | FD_CLOEXEC) ;
+ return flags < 0 ? flags : flags & FD_CLOEXEC ? 0 : fcntl(fd, F_SETFD, flags | FD_CLOEXEC) ;
}
diff --git a/src/libstddjb/ndelay_off.c b/src/libstddjb/ndelay_off.c
@@ -6,5 +6,5 @@
int ndelay_off (int fd)
{
int got = fcntl(fd, F_GETFL) ;
- return (got == -1) ? -1 : fcntl(fd, F_SETFL, got & ~O_NONBLOCK) ;
+ return got < 0 ? got : got & O_NONBLOCK ? fcntl(fd, F_SETFL, got & ~O_NONBLOCK) : 0 ;
}
diff --git a/src/libstddjb/ndelay_on.c b/src/libstddjb/ndelay_on.c
@@ -6,5 +6,5 @@
int ndelay_on (int fd)
{
int got = fcntl(fd, F_GETFL) ;
- return (got == -1) ? -1 : fcntl(fd, F_SETFL, got | O_NONBLOCK) ;
+ return got < 0 ? got : got & O_NONBLOCK ? 0 : fcntl(fd, F_SETFL, got | O_NONBLOCK) ;
}
diff --git a/src/libstddjb/uncoe.c b/src/libstddjb/uncoe.c
@@ -6,6 +6,5 @@
int uncoe (int fd)
{
int flags = fcntl(fd, F_GETFD, 0) ;
- if (flags < 0) return -1 ;
- return fcntl(fd, F_SETFD, flags & ~FD_CLOEXEC) ;
+ return flags < 0 ? flags : flags & FD_CLOEXEC ? fcntl(fd, F_SETFD, flags & ~FD_CLOEXEC) : 0 ;
}