X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=fd.c;h=763f756cdc3b5086ee9d26f432dbbfb760e02e4a;hb=4ce5b6570ed83ef2ab5296f369f147593507286b;hp=b8d1062d1ce98628468dfd7b184f4db346ef60ee;hpb=bb899fb1a0c279a2890ff30d11bf7aec50fb92ed;p=paraslash.git diff --git a/fd.c b/fd.c index b8d1062d..763f756c 100644 --- a/fd.c +++ b/fd.c @@ -6,7 +6,6 @@ #include #include #include -#include #include "para.h" #include "error.h" @@ -270,7 +269,7 @@ int read_nonblock(int fd, void *buf, size_t sz, size_t *num_bytes) int read_pattern(int fd, const char *pattern, size_t bufsize) { size_t n, len; - char *buf = para_malloc(bufsize + 1); + char *buf = alloc(bufsize + 1); int ret = read_nonblock(fd, buf, bufsize, &n); buf[n] = '\0'; @@ -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;