Lines Matching defs: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,
252 if (pollset->nelts == 0) {
261 ret = WSAPoll(pollset->p->pollset, pollset->nelts, (int)timeout);
263 ret = poll(pollset->p->pollset, pollset->nelts, timeout);
275 for (i = 0, j = 0; i < pollset->nelts; i++) {
276 if (pollset->p->pollset[i].revents != 0) {
280 if ((pollset->flags & APR_POLLSET_WAKEABLE) &&
281 pollset->p->query_set[i].desc_type == APR_POLL_FILE &&
282 pollset->p->query_set[i].desc.f == pollset->wakeup_pipe[0]) {
283 apr_pollset_drain_wakeup_pipe(pollset);
287 pollset->p->result_set[j] = pollset->p->query_set[i];
288 pollset->p->result_set[j].rtnevents =
289 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];
405 ret = WSAPoll(pollcb->pollset.ps, pollcb->nelts, (int)timeout);
407 ret = poll(pollcb->pollset.ps, pollcb->nelts, timeout);
417 if (pollcb->pollset.ps[i].revents != 0) {
419 pollfd->rtnevents = get_revent(pollcb->pollset.ps[i].revents);