История изменений
Исправление firkax, (текущая версия) :
Проблема имеется, но вот твой пример никуда не годится.
Ну то есть решили вы архитектурно организовать запуск рендеринга в одном треде, запуск приложений в другом (вы ж не бобо блокировать главный тред для этого), запустили отдельным тредом приложеньку, чекнули, что она форкнулась, всё там хорошо, внутри форка проставилм PDEATHSIG, завершили тред-запускалку… И получили прибитый ffmpeg
Что это за бредятина?! Создавать тред чтобы вызвать из него форк? Причём тут какое-то блокирование? Форк никого не блокирует.
И вроде бы по логике 3й пункт и ничего так,
Нет, третий пункт это дальнейшее усугубление бреда. Из твоих вариантов самый хороший - первый, и минусов у него почти нет.
Какие еще есть варианты умирания без модификации child-программы?
Пустой unshare(), хотя это конечно тоже костыль.
А та штука с deathsig работать будет не всегда корректно, даже если не не будешь устраивать этот идиотизм с тредами.
Исходная версия firkax, :
Проблема имеется, но вот твой пример никуда не годится.
Ну то есть решили вы архитектурно организовать запуск рендеринга в одном треде, запуск приложений в другом (вы ж не бобо блокировать главный тред для этого), запустили отдельным тредом приложеньку, чекнули, что она форкнулась, всё там хорошо, внутри форка проставилм PDEATHSIG, завершили тред-запускалку… И получили прибитый ffmpeg
Что это за бредятина?! Создавать тред чтобы вызвать из него форк? Причём тут какое-то блокирование? Форк никого не блокирует.
И вроде бы по логике 3й пункт и ничего так,
Нет, третий пункт это дальнейшее усугубление бреда.
Какие еще есть варианты умирания без модификации child-программы?
Пустой unshare(), хотя это конечно тоже костыль.
А та штука с deathsig работать будет не всегда корректно, даже если не не будешь устраивать этот идиотизм с тредами.