>>Об чем и речь. Дело в том, что select завершается с EINTR
>>по *любому*
>>(непойманному) сигналу, в то время как read -- только по SIGINT'у.
>>
>>Поэтому главный вопрос остается в силе: кто-нибудь видел формальное
>>обоснование такой дискриминации?
>
>Я не видел формального "обоснование такой дискриминации" :-),
"Дискриминация", в данном случае, просто афро-американизм. Не обижайтесь.
>но просто давайте взглянем
>на факты:
>select - просто проверяет доступность дескрипторов на чтение или запись
>read - непосредственно читает из дескриптора, которой может быть и
>каким-нибудь устройством
>По моему (я могу и ошибаться) no comments.
Вы не ошибаетесь. Все cool. Глядим на факты. Как было замечено выше Вами,
EINTR генерируется при interrupted system call. Как было замечено выше мною, разные system calls are interrupted по разному. Это ли не
дискриминация?
Об одном и том же ли мы говорим?
Почему проверка "доступности дескрипторов на чтение и запись" прерывается
по таймеру, по завершении дочернего процесса... по чьему-то дурацкому
желанию послать мне SIGUSR, наконец; в то время, как "непосредственное
чтение из дескриптора, которой может быть и каким-нибудь устройством", чихало на все, кроме Ctrl-C и иже с ним?
PS Это чистое любопытство. Оно обошлось мне в 9-10 часов отладки. Поэтому
меня больше всего интересует posix rationale, а также любые доказательства
правильности такого дизайна.