LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Проблема имеется, но вот твой пример никуда не годится.

Ну то есть решили вы архитектурно организовать запуск рендеринга в одном треде, запуск приложений в другом (вы ж не бобо блокировать главный тред для этого), запустили отдельным тредом приложеньку, чекнули, что она форкнулась, всё там хорошо, внутри форка проставилм PDEATHSIG, завершили тред-запускалку… И получили прибитый ffmpeg

Что это за бредятина?! Создавать тред чтобы вызвать из него форк? Причём тут какое-то блокирование? Форк никого не блокирует.

И вроде бы по логике 3й пункт и ничего так,

Нет, третий пункт это дальнейшее усугубление бреда. Из твоих вариантов самый хороший - первый, и минусов у него почти нет.

Какие еще есть варианты умирания без модификации child-программы?

Пустой unshare(), хотя это конечно тоже костыль.

А та штука с deathsig работать будет не всегда корректно, даже если не не будешь устраивать этот идиотизм с тредами.

Исходная версия firkax, :

Проблема имеется, но вот твой пример никуда не годится.

Ну то есть решили вы архитектурно организовать запуск рендеринга в одном треде, запуск приложений в другом (вы ж не бобо блокировать главный тред для этого), запустили отдельным тредом приложеньку, чекнули, что она форкнулась, всё там хорошо, внутри форка проставилм PDEATHSIG, завершили тред-запускалку… И получили прибитый ffmpeg

Что это за бредятина?! Создавать тред чтобы вызвать из него форк? Причём тут какое-то блокирование? Форк никого не блокирует.

И вроде бы по логике 3й пункт и ничего так,

Нет, третий пункт это дальнейшее усугубление бреда.

Какие еще есть варианты умирания без модификации child-программы?

Пустой unshare(), хотя это конечно тоже костыль.

А та штука с deathsig работать будет не всегда корректно, даже если не не будешь устраивать этот идиотизм с тредами.