fds в наборе epoll поддерживается ядром, поэтому вы в безопасности - ядро обрабатывает любую необходимую синхронизацию.
Тем не менее, остается вероятность того, что событие на fd наступит надругой поток непосредственно перед закрытием fd.Таким образом, может быть возможно иметь событие от fd, которого больше нет в наборе.С тщательно разработанной программой это не должно вызывать проблем.