Как сделать, чтобы SIGINT ловился только главным потоком процесса?
Демон в главном потоке запускает n дочерних, при этом имеется переопределенный обработчик SIGINT'a. Все вроде бы ничего, но когда SIGINT посылается пользователем (ctrl+c), его ловит рандомный поток. А нужно, чтобы всегда только главный поток ловил сигнал, чтобы корректно завершать демона. Подскажите, что погуглить, куда копать по данному вопросу?
А нужно, чтобы всегда только главный поток ловил сигнал
Обработка сигналов в потоках - довольно специфическая и достаточно новая тема: сигналы могут посылаться только приложению в целом, но не потокам, но манипулируя сигнальной маской в потоках, можно сделать так, что чувствительным к сигналу будет только выбранный поток.
См. здесь: Разработка программных проектов в Linux.