Правильная обработка EWOULDBLOCK с опросом на неблокирующем сокете

Я уже некоторое время работаю над TCP-демоном опроса. Недавно я прочитал, что неблокирующие сокеты могут иногда вызывать ошибку EWOULDBLOCK во время send () или recv (). Насколько я понимаю, если recv () выдает EWOULDBLOCK, это (обычно) означает, что получать нечего. Но что мне неясно, так это при каких обстоятельствах send () сгенерирует EWOULDBLOCK и какова будет правильная процедура для обработки такого события?

Если send () выдает EWOULDBLOCK, должен ли демон просто перейти от этого события к следующему? При использовании интерфейса опроса, такого как epoll, будет ли запущено новое событие, когда дескриптор станет готовым к записи?

5
задан lazyconfabulator 9 September 2010 в 04:42
поделиться