LINUX.ORG.RU

Если правильно понял, то ожидать макросом из семейства wait_event_xxx.
А в процессе перед завершением вызвать wake_up_xxx.

karak
()
Ответ на: комментарий от karak

поняли то вы правильно. но как быть с процессами завершившимися по segfault??? кто там сможет послать wake_up_xxx?????

cvv ★★★★★
() автор топика

wait_event не поможет.

у меня очень сильное ощущение что вам лучше этого
НЕ делать.

если уж действительно надо - можете в ядре вызвать
sys_wait4().

возможно, у вас есть уже ссылка на task_struct а не
только pid (для этого, конечно, вам нужно сделать
get_task_struct() под read_lock(&tasklist_lock)),
тогда можете просто проверить PF_EXITING, если вам
только нужно узнать жив еще процесс, или нет.

но я почти уверен что вам все-таки это не нужно.

на самом деле есть и другие возможности поймать
завершение процесса: через proc_exit_connector(),
task_exit_notifier, но это требует соответствующих
CONFIG_XXX.

idle ★★★★★
()
Ответ на: комментарий от idle

>wait_event не поможет.

вам видней

>у меня очень сильное ощущение что вам лучше этого НЕ делать.

придётся

>если уж действительно надо - можете в ядре вызвать sys_wait4().

конечно могу, но система тутже потеряет стабильность/работоспособность. угадали почему?? я ведь должен его дёргать не для дочерних процессов ....

>возможно, у вас есть уже ссылка на task_struct а не только pid (для этого, конечно, вам нужно сделать get_task_struct() под read_lock(&tasklist_lock)), тогда можете просто проверить PF_EXITING, если вам только нужно узнать жив еще процесс, или нет.

возможно тошо доктор прописал

>но я почти уверен что вам все-таки это не нужно.

>на самом деле есть и другие возможности поймать завершение процесса: через proc_exit_connector(), task_exit_notifier, но это требует соответствующих CONFIG_XXX.

на всякий случай: шо за зверь и в каком направлении копать

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

> > если уж действительно надо - можете в ядре вызвать sys_wait4().
> конечно могу, но система тутже потеряет стабильность/работоспособность.
> угадали почему?? я ведь должен его дёргать не для дочерних процессов

ах, ну да, ступил я.

> на всякий случай: шо за зверь и в каком направлении копать

посмотрите вызовы profile_task_exit(tsk), proc_exit_connector(tsk)
из do_exit().

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.