epoll_ev 48 lib/tevent/tevent_epoll.c static void epoll_panic(struct epoll_event_context *epoll_ev, const char *reason) epoll_ev 50 lib/tevent/tevent_epoll.c tevent_debug(epoll_ev->ev, TEVENT_DEBUG_FATAL, epoll_ev 69 lib/tevent/tevent_epoll.c static int epoll_ctx_destructor(struct epoll_event_context *epoll_ev) epoll_ev 71 lib/tevent/tevent_epoll.c close(epoll_ev->epoll_fd); epoll_ev 72 lib/tevent/tevent_epoll.c epoll_ev->epoll_fd = -1; epoll_ev 79 lib/tevent/tevent_epoll.c static int epoll_init_ctx(struct epoll_event_context *epoll_ev) epoll_ev 81 lib/tevent/tevent_epoll.c epoll_ev->epoll_fd = epoll_create(64); epoll_ev 82 lib/tevent/tevent_epoll.c epoll_ev->pid = getpid(); epoll_ev 83 lib/tevent/tevent_epoll.c talloc_set_destructor(epoll_ev, epoll_ctx_destructor); epoll_ev 84 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) { epoll_ev 90 lib/tevent/tevent_epoll.c static void epoll_add_event(struct epoll_event_context *epoll_ev, struct tevent_fd *fde); epoll_ev 97 lib/tevent/tevent_epoll.c static void epoll_check_reopen(struct epoll_event_context *epoll_ev) epoll_ev 101 lib/tevent/tevent_epoll.c if (epoll_ev->pid == getpid()) { epoll_ev 105 lib/tevent/tevent_epoll.c close(epoll_ev->epoll_fd); epoll_ev 106 lib/tevent/tevent_epoll.c epoll_ev->epoll_fd = epoll_create(64); epoll_ev 107 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) { epoll_ev 108 lib/tevent/tevent_epoll.c tevent_debug(epoll_ev->ev, TEVENT_DEBUG_FATAL, epoll_ev 112 lib/tevent/tevent_epoll.c epoll_ev->pid = getpid(); epoll_ev 113 lib/tevent/tevent_epoll.c for (fde=epoll_ev->ev->fd_events;fde;fde=fde->next) { epoll_ev 114 lib/tevent/tevent_epoll.c epoll_add_event(epoll_ev, fde); epoll_ev 125 lib/tevent/tevent_epoll.c static void epoll_add_event(struct epoll_event_context *epoll_ev, struct tevent_fd *fde) epoll_ev 129 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) return; epoll_ev 139 lib/tevent/tevent_epoll.c if (epoll_ctl(epoll_ev->epoll_fd, EPOLL_CTL_ADD, fde->fd, &event) != 0) { epoll_ev 140 lib/tevent/tevent_epoll.c epoll_panic(epoll_ev, "EPOLL_CTL_ADD failed"); epoll_ev 153 lib/tevent/tevent_epoll.c static void epoll_del_event(struct epoll_event_context *epoll_ev, struct tevent_fd *fde) epoll_ev 157 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) return; epoll_ev 167 lib/tevent/tevent_epoll.c if (epoll_ctl(epoll_ev->epoll_fd, EPOLL_CTL_DEL, fde->fd, &event) != 0) { epoll_ev 168 lib/tevent/tevent_epoll.c tevent_debug(epoll_ev->ev, TEVENT_DEBUG_FATAL, epoll_ev 178 lib/tevent/tevent_epoll.c static void epoll_mod_event(struct epoll_event_context *epoll_ev, struct tevent_fd *fde) epoll_ev 181 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) return; epoll_ev 188 lib/tevent/tevent_epoll.c if (epoll_ctl(epoll_ev->epoll_fd, EPOLL_CTL_MOD, fde->fd, &event) != 0) { epoll_ev 189 lib/tevent/tevent_epoll.c epoll_panic(epoll_ev, "EPOLL_CTL_MOD failed"); epoll_ev 198 lib/tevent/tevent_epoll.c static void epoll_change_event(struct epoll_event_context *epoll_ev, struct tevent_fd *fde) epoll_ev 204 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) return; epoll_ev 211 lib/tevent/tevent_epoll.c epoll_mod_event(epoll_ev, fde); epoll_ev 220 lib/tevent/tevent_epoll.c epoll_del_event(epoll_ev, fde); epoll_ev 226 lib/tevent/tevent_epoll.c epoll_add_event(epoll_ev, fde); epoll_ev 234 lib/tevent/tevent_epoll.c static int epoll_event_loop(struct epoll_event_context *epoll_ev, struct timeval *tvalp) epoll_ev 241 lib/tevent/tevent_epoll.c if (epoll_ev->epoll_fd == -1) return -1; epoll_ev 248 lib/tevent/tevent_epoll.c if (epoll_ev->ev->signal_events && epoll_ev 249 lib/tevent/tevent_epoll.c tevent_common_check_signal(epoll_ev->ev)) { epoll_ev 253 lib/tevent/tevent_epoll.c ret = epoll_wait(epoll_ev->epoll_fd, events, MAXEVENTS, timeout); epoll_ev 255 lib/tevent/tevent_epoll.c if (ret == -1 && errno == EINTR && epoll_ev->ev->signal_events) { epoll_ev 256 lib/tevent/tevent_epoll.c if (tevent_common_check_signal(epoll_ev->ev)) { epoll_ev 262 lib/tevent/tevent_epoll.c epoll_panic(epoll_ev, "epoll_wait() failed"); epoll_ev 268 lib/tevent/tevent_epoll.c tevent_common_loop_timer_delay(epoll_ev->ev); epoll_ev 278 lib/tevent/tevent_epoll.c epoll_panic(epoll_ev, "epoll_wait() gave bad data"); epoll_ev 290 lib/tevent/tevent_epoll.c epoll_del_event(epoll_ev, fde); epoll_ev 298 lib/tevent/tevent_epoll.c fde->handler(epoll_ev->ev, fde, flags, fde->private_data); epoll_ev 312 lib/tevent/tevent_epoll.c struct epoll_event_context *epoll_ev; epoll_ev 314 lib/tevent/tevent_epoll.c epoll_ev = talloc_zero(ev, struct epoll_event_context); epoll_ev 315 lib/tevent/tevent_epoll.c if (!epoll_ev) return -1; epoll_ev 316 lib/tevent/tevent_epoll.c epoll_ev->ev = ev; epoll_ev 317 lib/tevent/tevent_epoll.c epoll_ev->epoll_fd = -1; epoll_ev 319 lib/tevent/tevent_epoll.c ret = epoll_init_ctx(epoll_ev); epoll_ev 321 lib/tevent/tevent_epoll.c talloc_free(epoll_ev); epoll_ev 325 lib/tevent/tevent_epoll.c ev->additional_data = epoll_ev; epoll_ev 335 lib/tevent/tevent_epoll.c struct epoll_event_context *epoll_ev = NULL; epoll_ev 338 lib/tevent/tevent_epoll.c epoll_ev = talloc_get_type(ev->additional_data, epoll_ev 341 lib/tevent/tevent_epoll.c epoll_check_reopen(epoll_ev); epoll_ev 343 lib/tevent/tevent_epoll.c epoll_del_event(epoll_ev, fde); epoll_ev 360 lib/tevent/tevent_epoll.c struct epoll_event_context *epoll_ev = talloc_get_type(ev->additional_data, epoll_ev 364 lib/tevent/tevent_epoll.c epoll_check_reopen(epoll_ev); epoll_ev 373 lib/tevent/tevent_epoll.c epoll_add_event(epoll_ev, fde); epoll_ev 384 lib/tevent/tevent_epoll.c struct epoll_event_context *epoll_ev; epoll_ev 389 lib/tevent/tevent_epoll.c epoll_ev = talloc_get_type(ev->additional_data, struct epoll_event_context); epoll_ev 393 lib/tevent/tevent_epoll.c epoll_check_reopen(epoll_ev); epoll_ev 395 lib/tevent/tevent_epoll.c epoll_change_event(epoll_ev, fde); epoll_ev 403 lib/tevent/tevent_epoll.c struct epoll_event_context *epoll_ev = talloc_get_type(ev->additional_data, epoll_ev 422 lib/tevent/tevent_epoll.c epoll_check_reopen(epoll_ev); epoll_ev 424 lib/tevent/tevent_epoll.c return epoll_event_loop(epoll_ev, &tval);