Не подскажите,
Код:
...
sigemptyset(&zeromask);
sigemptyset(&newmask);
sigaddset(&newmask,SIGINT);
...
sigprocmask(SIG_BLOCK, &newmask,&oldmask);
tmp_set = read_set;
tmp_time_spec = time_spec;
r_code = pselect(FD_SETSIZE, &tmp_set, NULL,NULL,
&tmp_time_spec, &zeromask);
....
//sigprocmask(SIG_SETMASK, &oldmask,NULL); //? нужна
....
r_code = read(fd, buf, 10);
// если сигнал SIGINT блогирован, то он не будет
// доставляться процессу и не прервет read
// поэтому и вопрос ?
if(r_code == 10) {
...
}
....
После возврата из 'pselect()' маска сигналов процесса
будет с блокируемым сигналом 'SIGINT' или нет ?
То что pselect() восстанавливает маску сигналов
процесса я в курсе, но не совсем понимаю,
восстановит как было до вызова sigprocmask() ?
Или нужно после pselect() вставить
//sigprocmask(SIG_SETMASK, &oldmask,NULL);
Возможно пример глупый, но тем не менее.

Ответ на:
комментарий
от klalafuda
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от klalafuda
Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от klalafuda
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как выйти из системного вызова внутри потока? (2021)
- Форум потоки и сигналы. (2005)
- Форум Некорректная работа учебной программы обработки сигналов (2012)
- Форум Блокировка? (2015)
- Форум Блокировки (2015)
- Форум блокировки (2001)
- Форум Блокировка (2005)
- Форум Блокировка (2004)
- Форум Уникальный сигнал (2016)
- Форум Нет сигнала (2018)