Кто-нибудь знает детали поведения socket_select? С одной стороны, по логике вещей socket_select должен срабатывать сразу по событию изменения любого сокета. С другой стороны - возвращаемое количество изменённых сокетов часто больше единицы. Вопрос: за какой промежуток времени socket_select собирает изменившиеся сокеты?
"Вопрос: за какой промежуток времени socket_select собирает изменившиеся сокеты?" Если Вы читали документацию, то это, разумеется, не timeout. Теоретически, socket_select срабатывает, когда операционная система заполняет буфер сокета и вызывает прерывание. Ну, в общем. Но, очевидно, есть детали, поскольку socket_select нередко возвращает больше одного готового сокета, а вероятность того, что буферы двух сокетов заполнились строго одновременно -- не представляется большой. Т.е., в действительности socket_select срабатывает не строго по заполнению какого-нибудь буфера, а спустя какое-то время, за которое успевает заполнится несколько буферов. Какое это время?
@Satger Вы предлагаете нам своё прочтение документации, хотя там черным по белому написано что означает таймаут. Выбросьте из своих рассуждений "по логике вещей" и просто читайте что написано буквально. --- Добавлено --- Функция не собирает изменения за период, но ждёт изменение статуса не более указанного времени. Или бесконечно долго, если не указан таймаут и изменений нет. Да, могут быть зарегистрированы несколько изменений, потому что они могут произойти достаточно быстро - быстрее чем что-то там внутри этого обработчика успеет обернуться. --- Добавлено --- Буквальный ответ на вопрос "за какой промежуток времени он собирает" — не определено. Но постарается ждать не дольше, чем вы указали в параметрах.
Четвертый бан за неадекватное поведение. Зачем вы вообще сюда заходите, чтобы поделиться своим недовольством?