реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> uClinux. Потоки. Почему когда убиваю родителя, потомки тоже пропадают?
RCray
сообщение May 26 2008, 08:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



В родительском потоке создаю поток предка. Убиваю родителя (kill PID), потомок тоже умирает.
Мне нужно знать почему потомки не продолжают работать?

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

Т.е. всё работает как надо, но объяснить не могу.
Go to the top of the page
 
+Quote Post
alexander55
сообщение May 26 2008, 09:51
Сообщение #2


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



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

fork только создает процесс с того же места (раздваивается),
а функции семейства еxec уже запускают указанную задачу.
Посмотрите под башем командами
ps
ps -l
какие процессы крутятся до и после.
Процессы закрутите и снимайте их
kill номер процесса.
Все прояснится.
PS. Только сейчас увидел "uCLinux". Про него я не в курсе.
Go to the top of the page
 
+Quote Post
RCray
сообщение May 26 2008, 13:06
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



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


uClinux. работаю с библиотекой pthread.
Go to the top of the page
 
+Quote Post
Harbour
сообщение May 26 2008, 13:24
Сообщение #4


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



похоже что сигнал (от kill) посылается и потомку - перхватывать SIGTERM/SIGINT в потомке не пробовали ?
Go to the top of the page
 
+Quote Post
RCray
сообщение May 28 2008, 15:30
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



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


может быть.
не стал разбираться, сделал всё по чесноку - убиенный родитель (kill -15 PID)
делает pthread_cancel всем потомкам. потомки в свою очередь detach'ены.
родитель дожидается от каждого самописный my_pthread_join.
тем самым ресурсы при любом раскладе (потомки завершаются штатно или принудительно) остаются в полном порядке.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 04:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016