The OpenNET Project / Index page

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

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

"Как в родителе дождаться окончания всех потомков???"
Сообщение от Bizon Искать по авторуВ закладки on 14-Авг-03, 17:20  (MSK)
Как в родителе дождаться окончания всех потомков???
какой wait для этого использовать???
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Как в родителе дождаться окончания всех потомков???"
Сообщение от XMan Искать по авторуВ закладки on 14-Авг-03, 19:12  (MSK)
while (wait(-1,0,0) != -1);

?

Можно еще вот так:

do{ while (wait(-1,0,0) != -1); } while (errno == EINTR);

Это чтобы перехватывать всякие сигналы.

"man wait"

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

2. "Как в родителе дождаться окончания всех потомков???"
Сообщение от Bizon Искать по авторуВ закладки on 15-Авг-03, 15:32  (MSK)
>while (wait(-1,0,0) != -1);
>
>?
>
>Можно еще вот так:
>
>do{ while (wait(-1,0,0) != -1); } while (errno == EINTR);
>
>Это чтобы перехватывать всякие сигналы.
>
>"man wait"

Спасибо большое!!очень помогло!!
теперь усложним задачу:))))))
как ждать завершения ВСЕХ потомков определённое время??


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

3. "Как в родителе дождаться окончания всех потомков???"
Сообщение от XMan Искать по авторуВ закладки on 15-Авг-03, 16:24  (MSK)
Чего-то я в прошлый раз намудрил - у wait всего один парамерт. Это у waitpid их три :)

Ты ман читал ? Там же по-английски/русски написано:

"Функция wait приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс не завершится, или до появления сигнала, который либо завершает текущий процесс, либо требует вызвать функцию-обработчик."

А теперь смотри в сторону сигнала SIGALRM м его обработчика, устанавливаемого с помощью "signal(...,...)". А чтобы всё это работало - "man alarm" и впихиваешь его прямо в обработчик сигнала SIGALRM.

Теоретически так :)

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


Удалить

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




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

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