The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Вопрос о поведении системного вызова select"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Вопрос о поведении системного вызова select"
Сообщение от Yuri emailИскать по авторуВ закладки(??) on 11-Сен-04, 00:38  (MSK)
Если вызов

select(nfds, &rfds, &wfds, NULL, NULL)

завершился с errno = EINTR
возможна ли ситуация в которой select уже успел модифицировать rfds или wfds ?

Или же можно спокойно перезапускать select с этими же rfds и wfds ?

Спасибо за помощь !

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Вопрос о поведении системного вызова select"
Сообщение от Maxim A.Kuznetcov Искать по авторуВ закладки on 11-Сен-04, 03:12  (MSK)
>Если вызов
>
>select(nfds, &rfds, &wfds, NULL, NULL)
>
>завершился с errno = EINTR
>возможна ли ситуация в которой select уже успел модифицировать rfds или wfds
>?
>
>Или же можно спокойно перезапускать select с этими же rfds и wfds
>?
>
>Спасибо за помощь !
если ты получил EINTR то полагаться на значения rfds,wfds не стоит..
заполни их снова и запускай select, если какое событие было, всё равно мимо тебя не проскочит ;-)
кстати при использовании select одновременно с сигналами, настойчиво рекомендуется функция pselect


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Вопрос о поведении системного вызова select"
Сообщение от Yuri emailИскать по авторуВ закладки(??) on 13-Сен-04, 03:02  (MSK)
Спасибо

Я впринципе и склонялся перезаполнять на всякий случай.
Но думал может можно соптимизировать ;)

Как всегда не внимательно читал, внизу пост человека, ткнул что sets are undefined on error, так как EINTR все-таки относится к error полагатся действительно не стоит.

>>Если вызов
>>
>>select(nfds, &rfds, &wfds, NULL, NULL)
>>
>>завершился с errno = EINTR
>>возможна ли ситуация в которой select уже успел модифицировать rfds или wfds
>>?
>>
>>Или же можно спокойно перезапускать select с этими же rfds и wfds
>>?
>>
>>Спасибо за помощь !
>если ты получил EINTR то полагаться на значения rfds,wfds не стоит..
>заполни их снова и запускай select, если какое событие было, всё равно
>мимо тебя не проскочит ;-)
>кстати при использовании select одновременно с сигналами, настойчиво рекомендуется функция pselect


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Вопрос о поведении системного вызова select"
Сообщение от vnp emailИскать по авторуВ закладки(??) on 11-Сен-04, 13:33  (MSK)
>Если вызов
>
>select(nfds, &rfds, &wfds, NULL, NULL)
>
>завершился с errno = EINTR
>возможна ли ситуация в которой select уже успел модифицировать rfds или wfds
>?
>
>Или же можно спокойно перезапускать select с этими же rfds и wfds
>?
>
>Спасибо за помощь !

man select:
    On error ... the sets and timeout become undefined

Переводить?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру