Commit 163848ab authored by Max Kellermann's avatar Max Kellermann

fd_util: avoid unnecessary fcntl() calls

parent 03747ba9
......@@ -58,15 +58,17 @@
static int
fd_mask_flags(int fd, int and_mask, int xor_mask)
{
int ret;
assert(fd >= 0);
ret = fcntl(fd, F_GETFD, 0);
if (ret < 0)
return ret;
const int old_flags = fcntl(fd, F_GETFD, 0);
if (old_flags < 0)
return old_flags;
const int new_flags = (old_flags & and_mask) ^ xor_mask;
if (new_flags == old_flags)
return old_flags;
return fcntl(fd, F_SETFD, (ret & and_mask) ^ xor_mask);
return fcntl(fd, F_SETFD, new_flags);
}
#endif /* !WIN32 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment