signalfd не переопределяет обработчик сигнала openwrt - PullRequest
0 голосов
/ 14 апреля 2020

Я использую signalfd () и epoll_wait для обработки сигнала SIGRTMIN, отправленного одним из моих потоков в процессе. Но signalfd, похоже, не перекрывает обработчик по умолчанию. Я установил sigprocmask для блокировки SIGRTMIN. Но все же он выполняет функции обработчика по умолчанию, т.е. завершает процесс получения. Я попытался использовать sigaction, чтобы установить фиктивный обработчик, а также установить для обработчика значение SIG_IGN перед вызовом signalfd (). Но когда я делаю это, он запускает и выполняет фиктивный обработчик или, в случае SIG_IGN, просто игнорирует сигнал, вместо того, чтобы переопределяться signalfd. Насколько я понимаю, sigprocmask должно было быть достаточно, чтобы заблокировать сигналы, обрабатываемые другими обработчиками. Но что может быть причиной такого поведения тогда? Может ли это быть проблемой использования signalfd в openwrt?

...