Использование срабатывания фронта epoll, следует ли мне перебрать send?

Я использую epoll для записи медиа-сервера. Все fds настроены на неблокирование, и я использую события, запускаемые фронтом. Я знаю, что EPOLLIN I нужно выполнить цикл чтения fd до тех пор, пока не будет возвращено EAGAIN. Но как насчет записи?

Когда я хочу записать, я помещаю данные в очередь и устанавливаю EPOLLOUT | EPOLLIN | EPOLLET на fd. Когда происходит событие EPOLLOUT, я записываю все в очередь буфер за один раз:

n = send ( fd, buf, buf_len, MSG_NOSIGNAL );

Если n> 0 && n

Устранение системного вызова здесь самый эффективный маршрут?

6
задан Martin Redmond 5 July 2011 в 15:00
поделиться