-
Как свести к минимуму возможность блокировки потока после вызова send? Использую select и WriteFDS, но поток все равно иногда блокируется (и иногда надолго). Можно ли это предотвратить? Может стоит разбивать данные на части, ограничивая передаваемый буфер определенным размером? Если да, то каким размером? Или ничего тут не придумаешь и полное отсутствие блокировок возможно только в неблокирующем режиме?
-
> Если да, то каким размером?
см. GetSockOpt, опция SO_SNDBUF.
-
> Сергей М. © (22.02.11 19:14) [1]
Не поможет. Если в буфере будет свободен 1 байт, select покажет доступность для записи, а send с 2-байтовым блоком будет блокирована.
> ATitle (21.02.11 20:51) > Можно ли это предотвратить?
В общем случае -- нет. Да оно и не надо.
> Если да, то каким размером?
1 байт.
|