diff options
author | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2002-12-31 17:10:40 +0000 |
---|---|---|
committer | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2002-12-31 17:10:40 +0000 |
commit | fcc44073ce554512bfbebb273959c862bbd824b4 (patch) | |
tree | b2c1e251639f20cb9bf893f4e86293a71fd5767c /poll | |
parent | eb62cf9bec125bec647763b27fe4cf5188bae61a (diff) | |
download | libapr-fcc44073ce554512bfbebb273959c862bbd824b4.tar.gz |
Fix apr_poll behavior on Darwin/Win32 (now passing testpoll.)
We were getting spurious returned events because the select-based
poll implementation wasn't zeroing out previous results before
setting the current ones and returning.
Submitted by: Garrett Rooney <rooneg@electricjellyfish.net>
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64241 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poll')
-rw-r--r-- | poll/unix/poll.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/poll/unix/poll.c b/poll/unix/poll.c index a5a0965a7..b0c215b71 100644 --- a/poll/unix/poll.c +++ b/poll/unix/poll.c @@ -275,6 +275,10 @@ APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, int num, apr_int32_t *n } #endif + for (i = 0; i < *nsds; i++) { + aprset[i].rtnevents = 0; + } + (*nsds) = rv; if ((*nsds) == 0) { return APR_TIMEUP; |