Lines Matching refs:poller
228 libxl__poller *poller; in libxl__ev_fd_deregister() local
241 LIBXL_LIST_FOREACH(poller, &CTX->pollers_fds_changed, fds_changed_entry) in libxl__ev_fd_deregister()
242 poller->fds_changed = 1; in libxl__ev_fd_deregister()
1007 static int beforepoll_internal(libxl__gc *gc, libxl__poller *poller, in beforepoll_internal() argument
1040 REQUIRE_FD(poller->wakeup_pipe[0], POLLIN, BODY); \ in beforepoll_internal()
1079 if (poller->fd_rindices_allocd < maxfd) { in beforepoll_internal()
1080 assert(ARRAY_SIZE_OK(poller->fd_rindices, maxfd)); in beforepoll_internal()
1081 poller->fd_rindices = in beforepoll_internal()
1082 libxl__realloc(NOGC, poller->fd_rindices, in beforepoll_internal()
1083 maxfd * sizeof(*poller->fd_rindices)); in beforepoll_internal()
1084 memset(poller->fd_rindices + poller->fd_rindices_allocd, in beforepoll_internal()
1086 (maxfd - poller->fd_rindices_allocd) in beforepoll_internal()
1087 * sizeof(*poller->fd_rindices)); in beforepoll_internal()
1088 poller->fd_rindices_allocd = maxfd; in beforepoll_internal()
1099 assert(req_fd < poller->fd_rindices_allocd); in beforepoll_internal()
1100 if (req_events & POLLIN) poller->fd_rindices[req_fd][0] = used; in beforepoll_internal()
1101 if (req_events & POLLPRI) poller->fd_rindices[req_fd][1] = used; in beforepoll_internal()
1102 if (req_events & POLLOUT) poller->fd_rindices[req_fd][2] = used; in beforepoll_internal()
1111 poller->fds_changed = 0; in beforepoll_internal()
1148 static int afterpoll_check_fd(libxl__poller *poller, in afterpoll_check_fd() argument
1157 if (fd >= poller->fd_rindices_allocd) in afterpoll_check_fd()
1165 int *slotp = &poller->fd_rindices[fd][i]; in afterpoll_check_fd()
1177 assert(poller->fds_changed || !(fds[slot].revents & POLLNVAL)); in afterpoll_check_fd()
1203 static void afterpoll_internal(libxl__egc *egc, libxl__poller *poller, in afterpoll_internal() argument
1256 revents = afterpoll_check_fd(poller,fds,nfds, in afterpoll_internal()
1268 if (afterpoll_check_fd(poller,fds,nfds, poller->wakeup_pipe[0],POLLIN)) { in afterpoll_internal()
1269 int e = libxl__self_pipe_eatall(poller->wakeup_pipe[0]); in afterpoll_internal()
1459 libxl__poller *poller; in libxl__event_occurred() local
1461 LIBXL_LIST_FOREACH(poller, &CTX->pollers_event, entry) in libxl__event_occurred()
1462 libxl__poller_wakeup(egc, poller); in libxl__event_occurred()
1664 static int eventloop_iteration(libxl__egc *egc, libxl__poller *poller) { in eventloop_iteration() argument
1678 nfds = poller->fd_polls_allocd; in eventloop_iteration()
1680 rc = beforepoll_internal(gc, poller, &nfds, poller->fd_polls, in eventloop_iteration()
1687 libxl__realloc(NOGC, poller->fd_polls, sizeof(*newarray) * nfds); in eventloop_iteration()
1691 poller->fd_polls = newarray; in eventloop_iteration()
1692 poller->fd_polls_allocd = nfds; in eventloop_iteration()
1696 rc = poll(poller->fd_polls, nfds, timeout); in eventloop_iteration()
1711 afterpoll_internal(egc, poller, nfds, poller->fd_polls, now); in eventloop_iteration()
1723 libxl__poller *poller = NULL; in libxl_event_wait() local
1728 poller = libxl__poller_get(gc); in libxl_event_wait()
1729 if (!poller) { rc = ERROR_FAIL; goto out; } in libxl_event_wait()
1735 rc = eventloop_iteration(egc, poller); in libxl_event_wait()
1749 libxl__poller_put(ctx, poller); in libxl_event_wait()
1839 libxl__poller_put(ctx, ao->poller); in libxl__ao__destroy()
1902 if (ao->poller) { in libxl__ao_complete_check_progress_reports()
1906 libxl__poller_wakeup(egc, ao->poller); in libxl__ao_complete_check_progress_reports()
1936 ao->poller = 0; in libxl__ao_create()
1943 ao->poller = libxl__poller_get(&ao->gc); in libxl__ao_create()
1944 if (!ao->poller) goto out; in libxl__ao_create()
1948 ao, how, ao->how.callback, ao->poller); in libxl__ao_create()
1977 ao, ao->poller, in libxl__ao_inprogress()
1983 if (ao->poller) { in libxl__ao_inprogress()
2001 rc = eventloop_iteration(&egc,ao->poller); in libxl__ao_inprogress()
2090 if (search->poller) in libxl_ao_abort()
2101 if (!search->poller) in libxl_ao_abort()