introduce para_select()
[paraslash.git] / fd.c
diff --git a/fd.c b/fd.c
index 5db30b6..b5310f8 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -12,3 +12,16 @@ int file_exists(const char *fn)
 
        return !stat(fn, &statbuf);
 }
+
+int para_select(int n, fd_set *readfds, fd_set *writefds,
+               struct timeval *timeout)
+{
+       int ret, err;
+       do {
+               ret = select(n, readfds, writefds, NULL, timeout);
+               err = errno;
+       } while (ret < 0 && errno == EINTR);
+       if (ret < 0)
+               PARA_CRIT_LOG("select error (%s)\n", strerror(err));
+       return ret;
+}