From downstream GUAC-1571:
The various pieces of libguac and guacd use select() to wait for data on file descriptors, but select() is inherently limited. It can only monitor file descriptors up to FD_SETSIZE, even if the intent is to monitor only a single file descriptor. poll(), on the other hand, has no such limitation.
Other options, like Linux's epoll() or BSD's kqueue(), are noteworthy for being much more efficient for monitoring large numbers of file descriptors, but poll() should be more than sufficient to replace current use of select(). We currently only ever monitor one file descriptor per thread.