aboutsummaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-03-26 10:39:03 +0000
committerEric Wong <normalperson@yhbt.net>2008-03-26 10:39:03 +0000
commit232c9f6c41387bc3cf1c239e0ce4caafbbb76c67 (patch)
treea59f599bae44be0c0744c370134e7786bc243bbc /src/utils.c
parent70dbc2b0e76f479961bd0ac326ee6a5d009cc170 (diff)
notify: cleanups
* move set_nonblock{,ing}() into utils.c since we use it elsewhere, too * add proper error checking to set_nonblocking() * use os_compat.h instead of individually #includ-ing system headers git-svn-id: https://svn.musicpd.org/mpd/trunk@7217 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 8f18a80f..1ff9a191 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -214,3 +214,18 @@ char *parsePath(char *path)
return newPath;
}
+
+int set_nonblocking(int fd)
+{
+ int ret, flags;
+
+ assert(fd >= 0);
+
+ while ((flags = fcntl(fd, F_GETFL)) < 0 && errno == EINTR) ;
+ if (flags < 0)
+ return flags;
+
+ flags |= O_NONBLOCK;
+ while ((ret = fcntl(fd, F_SETFL, flags)) < 0 && errno == EINTR) ;
+ return ret;
+}