diff options
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/events/events_aio.c | 2 | ||||
-rw-r--r-- | source4/lib/events/events_epoll.c | 2 | ||||
-rw-r--r-- | source4/lib/events/events_standard.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/source4/lib/events/events_aio.c b/source4/lib/events/events_aio.c index afc806a276..8cc100dede 100644 --- a/source4/lib/events/events_aio.c +++ b/source4/lib/events/events_aio.c @@ -393,6 +393,8 @@ static int aio_event_fd_destructor(struct fd_event *fde) struct aio_event_context *aio_ev = talloc_get_type(ev->additional_data, struct aio_event_context); + epoll_check_reopen(aio_ev); + aio_ev->num_fd_events--; aio_ev->destruction_count++; diff --git a/source4/lib/events/events_epoll.c b/source4/lib/events/events_epoll.c index 9874377141..717ea94064 100644 --- a/source4/lib/events/events_epoll.c +++ b/source4/lib/events/events_epoll.c @@ -342,6 +342,8 @@ static int epoll_event_fd_destructor(struct fd_event *fde) struct epoll_event_context *epoll_ev = talloc_get_type(ev->additional_data, struct epoll_event_context); + epoll_check_reopen(epoll_ev); + epoll_ev->num_fd_events--; epoll_ev->destruction_count++; diff --git a/source4/lib/events/events_standard.c b/source4/lib/events/events_standard.c index fd4b88008b..8761b12873 100644 --- a/source4/lib/events/events_standard.c +++ b/source4/lib/events/events_standard.c @@ -379,6 +379,8 @@ static int std_event_fd_destructor(struct fd_event *fde) struct std_event_context *std_ev = talloc_get_type(ev->additional_data, struct std_event_context); + epoll_check_reopen(std_ev); + if (std_ev->maxfd == fde->fd) { std_ev->maxfd = EVENT_INVALID_MAXFD; } |