SK
> Root Cause: It's the responsibility of application vendors to make sure alternatives are available in their code (such as using epoll/libevents) to select() what's limited by the FD_SETSIZE in order to make their application more flexible and robust.
При этом реализация представляет из себя массив бит, в который всё пишется по индексу, который и есть номер fd
https://github.com/bminor/glibc/blob/5f72f9800b250410cad3abfeeb09469ef12b2438/bits/select.h#L25-L37
https://github.com/bminor/glibc/blob/5f72f9800b250410cad3abfeeb09469ef12b2438/misc/sys/select.h#L51-L56
Я кажется понял где он сломан. Реально, достаточно номеру fd выйти за пределы положенного, как всё свалится. Я-то думал там поиск и вставки с линейной сложностью.
> select() call can only listen 1024 file descriptor at the same time and all of the file descriptor number must be less than 1024
Треш какой, хех.
Это апаратура в 64 килобай (не гига, а кило) на процесс.
Под неё делали 40 почти лет назад.

