O trecho de código a seguir chama a select()
função.
n = select(max_fd, NULL, &write_set, NULL, NULL)
Ele verifica a disponibilidade de gravação em alguns soquetes. Como geralmente está disponível, o tempo limite não é definido. Em certas iterações do loop, é possível que write_set
esteja vazio.
Abaixo está o rastreamento. Não há mais saída, então presumo que o programa trave.
select(7, NULL, [], NULL, NULL
Minha pergunta é: esse é o comportamento correto? Se o conjunto estiver vazio, o select deve retornar imediatamente? Não há motivo para select()
esperar, certo?