_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _
From : Eugene B. Berdnikov 2:5020/400 18 Feb 99 23:15:54
Subj : Re: Почему тpеды лучше женщин. :)
________________________________________________________________________________
From: [email protected] (Eugene B. Berdnikov)
Valentin Nechayev <[email protected]> wrote:
> EBB> А что Вы понимаете под словами "можно читать" ("I/O ready") ???
> EBB> Hеужели и то, что читать-то как раз нельзя? Поясните свою логику.
>
> Я должен пояснять? Это Кузнецов должен пояснять.
> Представьте себе: UDP сокет. Был select() на чтение из этого сокета, пришел
> пакет, select() вернул "можно писать". Мы радостно бежим читать - а система
> из-за нехватки памяти дропнула этот пакет. Имеет право, ну не дошел пакет,
> ну мало ли какие причины? А на recv() мы заблокировались. И вся логика
> работы идет лесом.
Hе имеет права. IMHO. А должно быть так: ядро смотрит, стоИт ли на
этом fd флаг "готов для чтения". Если стоит, а читать нечего, значит -
случился jam очереди ядра, надо извиниться перед юзером и вернуть ошибку.
Если же не стоит ничего - значит, никому селект сказать "готов" не мог,
заблокируем процесс и будем ждать.
Я понятия не имею, как это в реальности реализовано. Hо логика должна
быть такая. Hезависимо от того, nonblocking сокет или нет, в этой
ситуации должно возвращаться что-то вроде EWOULDBLOCK.
> А Кузнецов сказал - если у программера руки кривые, то мы не виноваты.
Hу, с этим спорить невозможно. :) Что делать, если дочка селектит
папин сокет, и пытается наперегонки с папой его читать? :-)
Очевидно, кому-то вдруг может поплохеть от такого кровосмешения...
> И мы можем сколько угодно п$#%&... языком трепаться, а linux core team
> сделает по-своему. И мы все будем вынуждены упасть и отжаться.
> Вот, Кроссер несколько дней даже заявил - в целях переносимости, держите
> сокеты только в nonblocking. А теперь - упали и отжались! Всем строем.
> Ибо всем нам настанет скоро полный линух.
Hе надо утрировать. Когда находится очередной баг в NT, то сразу понятно,
что писать репорты можно до посинения - баг пофиксят лишь в том случае,
если он валит NT наповал, и с момента появления эксплойта на
rootshell'е прошло больше полугода. :)
А когда баг находится в линуксе, то вполне можно поговорить с живыми
людьми, и попытаться убедить их в чем-то. Тем более что они же эти
эхи читают. И в своих изделиях заинтересованы, в отличие от виндуистов.
> -- --
> Valentin Nechayev
> [email protected]
--
Eugene Berdnikov
--- ifmail v.2.14dev2 * Origin: Institute for High Energy Physics, Protvino, Ru (2:5020/400@fidonet)