Если вы используете kqueue(), должны ли вы устанавливать O_NONBLOCK в своих файловых дескрипторах? Другими словами, гарантирует ли kqueue(), что следующая операция ввода-вывода с готовым файловым дескриптором не будет заблокирована, независимо от того, установлен ли O_NONBLOCK?
kqueue() и O_NONBLOCK
Ответы (2)
Если вы используете kqueue(), должны ли вы устанавливать O_NONBLOCK в своих файловых дескрипторах?
Неа.
Другими словами, гарантирует ли kqueue(), что следующая операция ввода-вывода с готовым файловым дескриптором не будет заблокирована, независимо от того, установлен ли O_NONBLOCK?
Ага.
person
arrowd
schedule
26.10.2012
Тебе не нужно. Тем не менее, я обычно делаю это для проверки здравомыслия. Это приводит к тому, что такие операции, как read(), возвращают -1 и устанавливают для errno значение EWOULDBLOCK. Я бы предпочел получить EWOULDBLOCK и знать, что моя реализация kqueue содержит ошибки, чем блок вызовов read() (и, следовательно, моя программа зависает) по неизвестным причинам.
person
Billy
schedule
06.12.2013