summaryrefslogtreecommitdiff
path: root/poll/unix/port.c
diff options
context:
space:
mode:
authortrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2009-11-09 16:37:50 +0000
committertrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2009-11-09 16:37:50 +0000
commitb3e84eaa7221f2cafd1ac47b762beed5e5567a78 (patch)
tree13fd35a2ba29c2f3820bda999ba4628242b72d48 /poll/unix/port.c
parent333c61796be04d5ed7df84b8d8a806ff6bc9731e (diff)
downloadlibapr-b3e84eaa7221f2cafd1ac47b762beed5e5567a78.tar.gz
fix pollcb hangs on Solaris when using Event Ports
passing nget=n will block until n events are available (or timeout/signal occurs) possible future optimization: in order to retrieve 1 or more events, first call port_getn() with nget=0 to find out how many events are available, then call it again with the number available git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@834136 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poll/unix/port.c')
-rw-r--r--poll/unix/port.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/poll/unix/port.c b/poll/unix/port.c
index 1d2613df1..a4509ac8a 100644
--- a/poll/unix/port.c
+++ b/poll/unix/port.c
@@ -537,7 +537,7 @@ static apr_status_t impl_pollcb_poll(apr_pollcb_t *pollcb,
{
apr_pollfd_t *pollfd;
apr_status_t rv;
- unsigned int i, nget = pollcb->nalloc;
+ unsigned int i, nget = 1;
rv = call_port_getn(pollcb->fd, pollcb->pollset.port, pollcb->nalloc,
&nget, timeout);