Jul 31, 2011 21:41
Стоит задача прерывать connect по сигналу SIGALRM. Из-за того, что по крайней мере в родной бубунте флаг SA_RESTART для этого сигнала установлен, вроде как надо делать так:
struct sigaction sa, sa_old;
sa.sa_handler = timer_alarm;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
и только после этого:
if (sigaction(SIGALRM, &sa, &sa_old) == -1) return 2;
//дальше запускаем таймер и начинаем connect()...
Внимание, вопрос: при запуске такой конструкции из самостоятельного приложения коннект прерывается как надо. Но когда то же самое делаю в .so, то коннект не прерывается... Почему?
вопрос,
программирование