URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 6256
[ Назад ]

Исходное сообщение
"Как пробудить select() при бесконечном ожидании?( )"

Отправлено aka50 , 13-Апр-01 12:28 
есть код
if(rc=select(FD_SETSIZE,&rfds,&wfds,NULL,NULL)<0){
    if(rc!=EINTR){
             /* Error */
    }else{
      Сюда попадем,согласно ману, в случае когда
      получен какой-то сигнал.
    }
}

Т.е. по идее можно послать процессу какой-то
сигнал, но я перепробывал все сигналы, ничего не
помогает. Как в таком случае вывести select из
ожидания???

ЗЫ: У меня pthreads, может по этому он не хочет
выходить из ожидания.... (точнее select выходит
из ожидания, но только когда приходят данные из
дескрипторов), а вот как его досрочно пробудить?


Содержание

Сообщения в этом обсуждении
"RE: Как пробудить select() при бесконечном ожидании?( )"
Отправлено Z0termaNN , 13-Апр-01 14:30 
ну во-первых обработчик сигнала в программе есть ?
а дсорочно его можно пробудить только двумя
способами - послать сигнал и вывалиться по
таймауту (только обрати внимание на то, что в
линуксе select меняет timeout, в отличие от других
юниксов).