if we are the main ctdb daemon.
Other daemons/child processes are not guaranteed to get events on regular basis
so those should not be checked.
-extern pid_t ctdbd_pid;
-
/*
return on failure or (with 0) if all fd events are removed
*/
/*
return on failure or (with 0) if all fd events are removed
*/
+extern pid_t ctdbd_pid;
+
/*
event loop handling using epoll
*/
/*
event loop handling using epoll
*/
- tevent_before_wait(epoll_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_before_wait(epoll_ev->ev);
ret = epoll_wait(epoll_ev->epoll_fd, events, MAXEVENTS, timeout);
ret = epoll_wait(epoll_ev->epoll_fd, events, MAXEVENTS, timeout);
- tevent_after_wait(epoll_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_after_wait(epoll_ev->ev);
if (ret == -1 && errno == EINTR && epoll_ev->ev->signal_events) {
if (tevent_common_check_signal(epoll_ev->ev)) {
if (ret == -1 && errno == EINTR && epoll_ev->ev->signal_events) {
if (tevent_common_check_signal(epoll_ev->ev)) {
+extern pid_t ctdbd_pid;
+
/*
event loop handling using select()
*/
/*
event loop handling using select()
*/
- tevent_before_wait(select_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_before_wait(select_ev->ev);
selrtn = select(select_ev->maxfd+1, &r_fds, &w_fds, NULL, tvalp);
selrtn = select(select_ev->maxfd+1, &r_fds, &w_fds, NULL, tvalp);
- tevent_after_wait(select_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_after_wait(select_ev->ev);
if (selrtn == -1 && errno == EINTR &&
select_ev->ev->signal_events) {
if (selrtn == -1 && errno == EINTR &&
select_ev->ev->signal_events) {
+extern pid_t ctdbd_pid;
+
/*
event loop handling using epoll
*/
/*
event loop handling using epoll
*/
- tevent_before_wait(std_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_before_wait(std_ev->ev);
ret = epoll_wait(std_ev->epoll_fd, events, MAXEVENTS, timeout);
ret = epoll_wait(std_ev->epoll_fd, events, MAXEVENTS, timeout);
- tevent_after_wait(std_ev->ev);
+ if (getpid() == ctdbd_pid) tevent_after_wait(std_ev->ev);
if (ret == -1 && errno == EINTR && std_ev->ev->signal_events) {
if (tevent_common_check_signal(std_ev->ev)) {
if (ret == -1 && errno == EINTR && std_ev->ev->signal_events) {
if (tevent_common_check_signal(std_ev->ev)) {