Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: uClinux. Потоки. Почему когда убиваю родителя, потомки тоже пропадают?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
RCray
В родительском потоке создаю поток предка. Убиваю родителя (kill PID), потомок тоже умирает.
Мне нужно знать почему потомки не продолжают работать?

Чтобы память освобождалась, делаю потомку detach.

Т.е. всё работает как надо, но объяснить не могу.
alexander55
Цитата(2b|!2b?.. @ May 26 2008, 12:05) *
В родительском потоке создаю поток предка. Убиваю родителя (kill PID), потомок тоже умирает.

fork только создает процесс с того же места (раздваивается),
а функции семейства еxec уже запускают указанную задачу.
Посмотрите под башем командами
ps
ps -l
какие процессы крутятся до и после.
Процессы закрутите и снимайте их
kill номер процесса.
Все прояснится.
PS. Только сейчас увидел "uCLinux". Про него я не в курсе.
RCray
Цитата(alexander55 @ May 26 2008, 13:51) *
fork только создает процесс с того же места (раздваивается),
а функции семейства еxec уже запускают указанную задачу.
Посмотрите под башем командами
ps
ps -l
какие процессы крутятся до и после.
Процессы закрутите и снимайте их
kill номер процесса.
Все прояснится.
PS. Только сейчас увидел "uCLinux". Про него я не в курсе.


uClinux. работаю с библиотекой pthread.
Harbour
похоже что сигнал (от kill) посылается и потомку - перхватывать SIGTERM/SIGINT в потомке не пробовали ?
RCray
Цитата(Harbour @ May 26 2008, 17:24) *
похоже что сигнал (от kill) посылается и потомку - перхватывать SIGTERM/SIGINT в потомке не пробовали ?


может быть.
не стал разбираться, сделал всё по чесноку - убиенный родитель (kill -15 PID)
делает pthread_cancel всем потомкам. потомки в свою очередь detach'ены.
родитель дожидается от каждого самописный my_pthread_join.
тем самым ресурсы при любом раскладе (потомки завершаются штатно или принудительно) остаются в полном порядке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.