From: Gunter Knauf Date: Fri, 11 Sep 2009 02:33:04 +0000 (+0000) Subject: Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares. X-Git-Tag: upstream/7.37.1~5877 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4002fbe1f545d7d6c4ba2cb6c988f73d1b29d931;p=platform%2Fupstream%2Fcurl.git Joshua Kwan provided a patch to pass POLLERR / POLLHUP back to c-ares. This fixes a loop problem with high CPU usage. --- diff --git a/CHANGES b/CHANGES index 6ed90c0..3d2979a 100644 --- a/CHANGES +++ b/CHANGES @@ -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 1412f13..efecd86 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;