Lines Matching refs:pollcb
334 static apr_status_t impl_pollcb_cleanup(apr_pollcb_t *pollcb)
336 close(pollcb->fd);
340 static apr_status_t impl_pollcb_create(apr_pollcb_t *pollcb,
365 pollcb->fd = -1;
373 pollcb->fd = -1;
379 pollcb->fd = fd;
380 pollcb->pollset.epoll = apr_palloc(p, size * sizeof(struct epoll_event));
385 static apr_status_t impl_pollcb_add(apr_pollcb_t *pollcb,
395 ret = epoll_ctl(pollcb->fd, EPOLL_CTL_ADD,
399 ret = epoll_ctl(pollcb->fd, EPOLL_CTL_ADD,
410 static apr_status_t impl_pollcb_remove(apr_pollcb_t *pollcb,
420 ret = epoll_ctl(pollcb->fd, EPOLL_CTL_DEL,
424 ret = epoll_ctl(pollcb->fd, EPOLL_CTL_DEL,
436 static apr_status_t impl_pollcb_poll(apr_pollcb_t *pollcb,
448 ret = epoll_wait(pollcb->fd, pollcb->pollset.epoll, pollcb->nalloc,
458 apr_pollfd_t *pollfd = (apr_pollfd_t *)(pollcb->pollset.epoll[i].data.ptr);
460 if ((pollcb->flags & APR_POLLSET_WAKEABLE) &&
462 pollfd->desc.f == pollcb->wakeup_pipe[0]) {
463 apr_poll_drain_wakeup_pipe(pollcb->wakeup_pipe);
467 pollfd->rtnevents = get_epoll_revent(pollcb->pollset.epoll[i].events);