X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=poll%2Fpoll.c;h=28156d1f7bd1163116618eed9cf17584a7182ade;hb=374cc17df9c262ed4485e84cb1ac41198c691dcf;hp=7f47b758b1c654707c1eff74f6993b3e2fc9730c;hpb=2230ba7b89bbaa989de311f9d7ea6d6e2cd5a9b8;p=awesomized%2Flibmemcached diff --git a/poll/poll.c b/poll/poll.c index 7f47b758..28156d1f 100644 --- a/poll/poll.c +++ b/poll/poll.c @@ -8,10 +8,18 @@ * Summary: Implementation of poll by using select * */ -#include "config.h" +#include "mem_config.h" + +#if defined(WIN32) || defined(__MINGW32__) +# include +# include +#endif + #include #include +#include "poll/poll.h" + int poll(struct pollfd fds[], nfds_t nfds, int tmo) { fd_set readfds, writefds, errorfds; @@ -19,16 +27,16 @@ int poll(struct pollfd fds[], nfds_t nfds, int tmo) FD_ZERO(&writefds); FD_ZERO(&errorfds); - int maxfd = 0; + int maxfd= 0; - for (int x = 0; x < nfds; ++x) + for (nfds_t x= 0; x < nfds; ++x) { if (fds[x].events & (POLLIN | POLLOUT)) { #ifndef WIN32 if (fds[x].fd > maxfd) { - maxfd = fds[x].fd; + maxfd= fds[x].fd; } #endif if (fds[x].events & POLLIN) @@ -42,23 +50,23 @@ int poll(struct pollfd fds[], nfds_t nfds, int tmo) } } - struct timeval timeout = { .tv_sec = tmo / 1000, - .tv_usec= (tmo % 1000) * 1000 }; - struct timeval *tp = &timeout; + struct timeval timeout= { .tv_sec = tmo / 1000, + .tv_usec= (tmo % 1000) * 1000 }; + struct timeval *tp= &timeout; if (tmo == -1) { - tp = NULL; + tp= NULL; } - int ret = select(maxfd + 1, &readfds, &writefds, &errorfds, tp); + int ret= select(maxfd + 1, &readfds, &writefds, &errorfds, tp); if (ret <= 0) { return ret; } /* Iterate through all of them because I need to clear the revent map */ - for (int x = 0; x < nfds; ++x) + for (nfds_t x= 0; x < nfds; ++x) { - fds[x].revents = 0; + fds[x].revents= 0; if (FD_ISSET(fds[x].fd, &readfds)) { fds[x].revents |= POLLIN;