Если ставить таймаут через setsockopt() - то непонятно, как его отслеживать, потому что poll() не помечает на нем никаких событий, а на уровне SOL_SOCKET, SO_ERROR равен 0.
Как разрешить данную проблему? Как из множества неблокированных сокетов определить, что у каких то истек таймаут?
P.S. попробовал после вызова connect() вернуть сокет в блокирующий режим - ничего не изменилось, после возврата из poll() на тех сокетах, где точно истек таймаут, установленный по setsockopt(), на уровне SOL_SOCKET SO_ERROR не принимает ошибочные состояния, и revent равны 0