diff options
-rw-r--r-- | pjlib/src/pj/ioqueue_select.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pjlib/src/pj/ioqueue_select.c b/pjlib/src/pj/ioqueue_select.c index 6be66ae5..b991f98b 100644 --- a/pjlib/src/pj/ioqueue_select.c +++ b/pjlib/src/pj/ioqueue_select.c @@ -830,6 +830,7 @@ on_error: PJ_DEF(int) pj_ioqueue_poll( pj_ioqueue_t *ioqueue, const pj_time_val *timeout) { pj_fd_set_t rfdset, wfdset, xfdset; + int nfds; int count, i, counter; pj_ioqueue_key_t *h; struct event @@ -876,10 +877,12 @@ PJ_DEF(int) pj_ioqueue_poll( pj_ioqueue_t *ioqueue, const pj_time_val *timeout) validate_sets(ioqueue, &rfdset, &wfdset, &xfdset); #endif + nfds = ioqueue->nfds; + /* Unlock ioqueue before select(). */ pj_lock_release(ioqueue->lock); - count = pj_sock_select(ioqueue->nfds+1, &rfdset, &wfdset, &xfdset, + count = pj_sock_select(nfds+1, &rfdset, &wfdset, &xfdset, timeout); if (count == 0) |