diff options
author | pquerna <pquerna@13f79535-47bb-0310-9956-ffa450edef68> | 2005-01-06 07:04:24 +0000 |
---|---|---|
committer | pquerna <pquerna@13f79535-47bb-0310-9956-ffa450edef68> | 2005-01-06 07:04:24 +0000 |
commit | 5fbc6e20867fb8e88c9b4b067d7cd0b4e6c26511 (patch) | |
tree | 94f4b20e2c4233e83370fea4b291b7c42e68707b | |
parent | b4c4511b67b9563ad763bb58f9b11593d85b9f7c (diff) | |
download | libapr-5fbc6e20867fb8e88c9b4b067d7cd0b4e6c26511.tar.gz |
* Fix compiler warning for type mismatch on nget.
* Add locking to prevent a race condition that the Event MPM hit.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@124350 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | poll/unix/port.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/poll/unix/port.c b/poll/unix/port.c index 056579e2d..4ecb56bf3 100644 --- a/poll/unix/port.c +++ b/poll/unix/port.c @@ -248,7 +248,8 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, const apr_pollfd_t **descriptors) { apr_os_sock_t fd; - int ret, i, nget; + int ret, i; + unsigned int nget; pfd_elem_t *ep; struct timespec tv, *tvptr; apr_status_t rv = APR_SUCCESS; @@ -303,6 +304,8 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, } else { + pollset_lock_rings(); + for (i = 0; i < nget; i++) { pollset->result_set[i] = (((pfd_elem_t*)(pollset->port_set[i].portev_user))->pfd); @@ -314,6 +317,8 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, pfd_elem_t, link); } + pollset_unlock_rings(); + if (descriptors) { *descriptors = pollset->result_set; } |