Задать вопрос
@kodwi
https://moikrug.ru/kodwi

Как сделать, чтобы SIGINT ловился только главным потоком процесса?

Демон в главном потоке запускает n дочерних, при этом имеется переопределенный обработчик SIGINT'a. Все вроде бы ничего, но когда SIGINT посылается пользователем (ctrl+c), его ловит рандомный поток. А нужно, чтобы всегда только главный поток ловил сигнал, чтобы корректно завершать демона. Подскажите, что погуглить, куда копать по данному вопросу?
  • Вопрос задан
  • 318 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Здесь есть отличный пример.
А здесь есть что почитать.
Ответ написан
Комментировать
Olej
@Olej
инженер, программист, преподаватель
А нужно, чтобы всегда только главный поток ловил сигнал


Обработка сигналов в потоках - довольно специфическая и достаточно новая тема: сигналы могут посылаться только приложению в целом, но не потокам, но манипулируя сигнальной маской в потоках, можно сделать так, что чувствительным к сигналу будет только выбранный поток.
См. здесь: Разработка программных проектов в Linux.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы