]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - fd.c
Switch from select(2) to poll(2).
[paraslash.git] / fd.c
diff --git a/fd.c b/fd.c
index b8d1062d1ce98628468dfd7b184f4db346ef60ee..800106e132b2bc21085f65803d70b6bad492f854 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -6,7 +6,6 @@
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/mman.h>
-#include <poll.h>
 
 #include "para.h"
 #include "error.h"
@@ -309,37 +308,6 @@ bool file_exists(const char *fn)
        return !stat(fn, &statbuf);
 }
 
-/**
- * Paraslash's wrapper for select(2).
- *
- * It calls select(2) (with no exceptfds) and starts over if select() was
- * interrupted by a signal.
- *
- * \param n The highest-numbered descriptor in any of the two sets, plus 1.
- * \param readfds fds that should be checked for readability.
- * \param writefds fds that should be checked for writablility.
- * \param timeout Upper bound in milliseconds.
- *
- * \return The return value of the underlying select() call on success, the
- * negative system error code on errors.
- *
- * All arguments are passed verbatim to select(2).
- * \sa select(2) select_tut(2).
- */
-int para_select(int n, fd_set *readfds, fd_set *writefds, int timeout)
-{
-       int ret;
-       struct timeval tv;
-
-       ms2tv(timeout, &tv);
-       do
-               ret = select(n, readfds, writefds, NULL, &tv);
-       while (ret < 0 && errno == EINTR);
-       if (ret < 0)
-               return -ERRNO_TO_PARA_ERROR(errno);
-       return ret;
-}
-
 /**
  * Set a file descriptor to blocking mode.
  *
@@ -599,7 +567,21 @@ int para_munmap(void *start, size_t length)
        return -ERRNO_TO_PARA_ERROR(err);
 }
 
-static int xpoll(struct pollfd *fds, nfds_t nfds, int timeout)
+/**
+ * Simple wrapper for poll(2).
+ *
+ * It calls poll(2) and starts over if the call was interrupted by a signal.
+ *
+ * \param fds See poll(2).
+ * \param nfds See poll(2).
+ * \param timeout See poll(2).
+ *
+ * \return The return value of the underlying poll() call on success, the
+ * negative paraslash error code on errors.
+ *
+ * All arguments are passed verbatim to poll(2).
+ */
+int xpoll(struct pollfd *fds, nfds_t nfds, int timeout)
 {
        int ret;