Lines Matching refs:pollset

78     struct pollfd pollset[num];
80 struct pollfd *pollset = alloca(sizeof(struct pollfd) * num);
81 if (!pollset)
85 struct pollfd *pollset;
88 pollset = tmp_pollset;
94 pollset = malloc(sizeof(struct pollfd) * num);
98 if (!pollset)
104 pollset[i].fd = aprset[i].desc.s->socketdes;
107 pollset[i].fd = aprset[i].desc.f->filedes;
112 pollset[i].events = get_event(aprset[i].reqevents);
120 i = poll(pollset, num_to_poll, timeout);
128 aprset[i].rtnevents = get_revent(pollset[i].revents);
134 free(pollset);
152 struct pollfd *pollset;
157 static apr_status_t impl_pollset_create(apr_pollset_t *pollset,
170 pollset->p = apr_palloc(p, sizeof(apr_pollset_private_t));
171 pollset->p->pollset = apr_palloc(p, size * sizeof(struct pollfd));
172 pollset->p->query_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
173 pollset->p->result_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
178 static apr_status_t impl_pollset_add(apr_pollset_t *pollset,
181 if (pollset->nelts == pollset->nalloc) {
185 pollset->p->query_set[pollset->nelts] = *descriptor;
188 pollset->p->pollset[pollset->nelts].fd = descriptor->desc.s->socketdes;
192 pollset->p->pollset[pollset->nelts].fd = descriptor->desc.f->filedes;
194 if ((pollset->flags & APR_POLLSET_WAKEABLE) &&
195 descriptor->desc.f == pollset->wakeup_pipe[0])
196 pollset->p->pollset[pollset->nelts].fd = (SOCKET)descriptor->desc.f->filedes;
201 pollset->p->pollset[pollset->nelts].events =
203 pollset->nelts++;
208 static apr_status_t impl_pollset_remove(apr_pollset_t *pollset,
213 for (i = 0; i < pollset->nelts; i++) {
214 if (descriptor->desc.s == pollset->p->query_set[i].desc.s) {
217 apr_uint32_t old_nelts = pollset->nelts;
218 pollset->nelts--;
220 if (descriptor->desc.s == pollset->p->query_set[i].desc.s) {
221 pollset->nelts--;
224 pollset->p->pollset[dst] = pollset->p->pollset[i];
225 pollset->p->query_set[dst] = pollset->p->query_set[i];
236 static apr_status_t impl_pollset_poll(apr_pollset_t *pollset,
248 if (pollset->nelts == 0) {
258 ret = WSAPoll(pollset->p->pollset, pollset->nelts, (int)timeout);
263 ret = poll(pollset->p->pollset, pollset->nelts, timeout);
274 for (i = 0, j = 0; i < pollset->nelts; i++) {
275 if (pollset->p->pollset[i].revents != 0) {
279 if ((pollset->flags & APR_POLLSET_WAKEABLE) &&
280 pollset->p->query_set[i].desc_type == APR_POLL_FILE &&
281 pollset->p->query_set[i].desc.f == pollset->wakeup_pipe[0]) {
282 apr_poll_drain_wakeup_pipe(pollset->wakeup_pipe);
286 pollset->p->result_set[j] = pollset->p->query_set[i];
287 pollset->p->result_set[j].rtnevents =
288 get_revent(pollset->p->pollset[i].revents);
298 *descriptors = pollset->p->result_set;
331 pollcb->pollset.ps = apr_palloc(p, size * sizeof(struct pollfd));
346 pollcb->pollset.ps[pollcb->nelts].fd = descriptor->desc.s->socketdes;
350 pollcb->pollset.ps[pollcb->nelts].fd = descriptor->desc.f->filedes;
356 pollcb->pollset.ps[pollcb->nelts].events =
380 pollcb->pollset.ps[dst] = pollcb->pollset.ps[i];
413 ret = WSAPoll(pollcb->pollset.ps, pollcb->nelts, (int)timeout);
418 ret = poll(pollcb->pollset.ps, pollcb->nelts, timeout);
428 if (pollcb->pollset.ps[i].revents != 0) {
438 pollfd->rtnevents = get_revent(pollcb->pollset.ps[i].revents);