Re: fprintf && write (resolved)

From
Valentin Nechayev ()
To
Boris Rudakov ()
Date
2003-06-07T11:22:08Z
Area
CARBON.COPY
 * Forwarded from area 'RU.UNIX.PROG'
From: Valentin Nechayev <netch@segfault.kiev.ua>


>>> Boris Rudakov wrote:

 AM>>     Таймаут. Дабы если у нас write() == -1 и errno == EAGAIN подождать
 AM>> пока reader всосет то, что есть у ядра в буферах. Ибо есть в нашей
 AM>> стране чудаки, которым дали ручку "зарезать icmp" - ну они и зарезали
 AM>> все, что можно. reader умер, а icmp что host/port/net недоступны -
 AM>> непришло.
BR> Чего такое "icmp" ?

Протокол ICMP из семейства TCP/IP.

 AM>>     Вообщем - проблема найдена и удавлена. Именно способом который
 AM>> посоветовал Lev Walkin.  Количество селектов упало в разы, скорость
 AM>> вернулась к нормальной (той, которая была до модификации).
BR> Короче, корректный асинхронный код чтения может быть таким:
BR>  while (...) {
BR>    if (read(...) < 0) {
BR>      if (errno != EAGAIN) return FALSE;
BR>      select(...);
BR>    }
BR>  }
BR> Угу ?

Где-то в общем - да.


-netch-
--- ifmail v.2.15dev5
 * Origin: Dark side of coredump (2:5020/400)