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

Исходное сообщение
"не доходят сигналы"

Отправлено gen , 02-Июн-04 14:19 
у меня в программе идёт передача нескольких файлов на фтп сервер одновременно (до 4). Я для каждого файла форкаю процесс в котором вызываю функцию отсылки файла. А сам ставлю обработчик на SIG_CHLD через signal().
Если отправляю где то больше 5 файлов (7 8 или 9).Не от всех процессов приходят сигналы о завершении функции и смерти потомка. Почему пропадают сигналы?

Содержание

Сообщения в этом обсуждении
"> Почему  пропадают сигналы? "
Отправлено Lamr , 02-Июн-04 14:36 
У стивенса подробно написано, почему. Сигналы в очередь на обработку не ставяться. В "UNIX:разработка сетевых прил" насоветовано пользоваться такой функцией

void
sig_chld(int signo) // signal(SIGCHLD, sig_chld);
{
    pid_t    pid;
    int        stat;

    while( (pid = waitpid(-1, &stat, WNOHANG)) > 0)
    ;

return;
}


"> Почему  пропадают сигналы? "
Отправлено gen , 02-Июн-04 14:42 
>У стивенса подробно написано, почему. Сигналы в очередь на обработку не ставяться.
>В "UNIX:разработка сетевых прил" насоветовано пользоваться такой функцией
>
>void
>sig_chld(int signo) // signal(SIGCHLD, sig_chld);
>{
> pid_t pid;
> int  stat;
>
>    while( (pid = waitpid(-1, &stat, WNOHANG)) > 0)
> ;
>
> return;
>}

спасибо попробую