}
epoll_ev->panic_state = &panic_triggered;
- epoll_check_reopen(epoll_ev);
- if (panic_triggered) {
- return tevent_common_fd_destructor(fde);
+ if (epoll_ev->pid != tevent_cached_getpid()) {
+ epoll_check_reopen(epoll_ev);
+ if (panic_triggered) {
+ return tevent_common_fd_destructor(fde);
+ }
}
if (mpx_fde != NULL) {
talloc_set_destructor(fde, epoll_event_fd_destructor);
- epoll_ev->panic_state = &panic_triggered;
- epoll_check_reopen(epoll_ev);
- if (panic_triggered) {
- return fde;
+ if (epoll_ev->pid != tevent_cached_getpid()) {
+ epoll_ev->panic_state = &panic_triggered;
+ epoll_check_reopen(epoll_ev);
+ if (panic_triggered) {
+ return fde;
+ }
+ epoll_ev->panic_state = NULL;
}
- epoll_ev->panic_state = NULL;
epoll_update_event(epoll_ev, fde);
fde->flags = flags;
- epoll_ev->panic_state = &panic_triggered;
- epoll_check_reopen(epoll_ev);
- if (panic_triggered) {
- return;
+ if (epoll_ev->pid != tevent_cached_getpid()) {
+ epoll_ev->panic_state = &panic_triggered;
+ epoll_check_reopen(epoll_ev);
+ if (panic_triggered) {
+ return;
+ }
+ epoll_ev->panic_state = NULL;
}
- epoll_ev->panic_state = NULL;
epoll_update_event(epoll_ev, fde);
}
return 0;
}
- epoll_ev->panic_state = &panic_triggered;
- epoll_ev->panic_force_replay = true;
- epoll_check_reopen(epoll_ev);
- if (panic_triggered) {
- errno = EINVAL;
- return -1;
+ if (epoll_ev->pid != tevent_cached_getpid()) {
+ epoll_ev->panic_state = &panic_triggered;
+ epoll_ev->panic_force_replay = true;
+ epoll_check_reopen(epoll_ev);
+ if (panic_triggered) {
+ errno = EINVAL;
+ return -1;
+ }
+ epoll_ev->panic_force_replay = false;
+ epoll_ev->panic_state = NULL;
}
- epoll_ev->panic_force_replay = false;
- epoll_ev->panic_state = NULL;
return epoll_event_loop(epoll_ev, &tval);
}