diff options
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | lib/hostares.c | 8 |
2 files changed, 10 insertions, 2 deletions
@@ -6,6 +6,10 @@ Changelog +Guenter Knauf (11 Sep 2009) +- Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares. + This fixes a loop problem with high CPU usage. + Daniel Stenberg (10 Sep 2009) - Claes Jakobsson fixed a problem with cookie expiry dates at exctly the epoch start second "Thu Jan 1 00:00:00 GMT 1970" as the date parser then returns 0 diff --git a/lib/hostares.c b/lib/hostares.c index 1412f13a6..efecd86bd 100644 --- a/lib/hostares.c +++ b/lib/hostares.c @@ -169,10 +169,14 @@ static int ares_waitperform(struct connectdata *conn, int timeout_ms) else { /* move through the descriptors and ask for processing on them */ for(i=0; i < num; i++) + /* + * Following the advice from: + * http://lists.danga.com/pipermail/memcached/2003-October/000336.html + */ ares_process_fd(data->state.areschannel, - pfd[i].revents & (POLLRDNORM|POLLIN)? + pfd[i].revents & (POLLRDNORM|POLLIN|POLLERR|POLLHUP)? pfd[i].fd:ARES_SOCKET_BAD, - pfd[i].revents & (POLLWRNORM|POLLOUT)? + pfd[i].revents & (POLLWRNORM|POLLOUT|POLLERR)? pfd[i].fd:ARES_SOCKET_BAD); } return nfds; |