skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

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:
Msrc/libstddjb/coe.c | 3+--
Msrc/libstddjb/ndelay_off.c | 2+-
Msrc/libstddjb/ndelay_on.c | 2+-
Msrc/libstddjb/uncoe.c | 3+--
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 ; }