Add a warning comment to "poller_fd::closed"

This commit is contained in:
Přemysl Eric Janouch 2017-05-06 21:09:04 +02:00
parent 9866675bb7
commit 22edb6d489
Signed by: p
GPG Key ID: B715679E3A361BE6
2 changed files with 4 additions and 0 deletions

View File

@ -1460,6 +1460,7 @@ mpd_client_reset (struct mpd_client *self)
xclose (self->socket); xclose (self->socket);
self->socket = -1; self->socket = -1;
// FIXME: this is not robust wrt. forking
self->socket_event.closed = true; self->socket_event.closed = true;
poller_fd_reset (&self->socket_event); poller_fd_reset (&self->socket_event);
poller_timer_reset (&self->timeout_timer); poller_timer_reset (&self->timeout_timer);

View File

@ -1326,6 +1326,9 @@ struct poller_fd
int fd; ///< Our file descriptor int fd; ///< Our file descriptor
short events; ///< The poll() events we registered for short events; ///< The poll() events we registered for
// Make triple sure that no forked child is keeping the FD,
// otherwise we may access freed memory on Linux (poor epoll design)
bool closed; ///< Whether fd has been closed already bool closed; ///< Whether fd has been closed already
poller_fd_fn dispatcher; ///< Event dispatcher poller_fd_fn dispatcher; ///< Event dispatcher