Такая проблема. Программа получает данные через COM-порт, и основное время проводит в состоянии ожидания этих данных (в системном вызове read). Нужно чтобы она корректно обрабатывала сигнал TERM (т. е. правильно завершала свою работу). Но простая установка сигнала не помогает - при получении SIGTERM программа просто завершает работу с сообщением "Terminated.", мой обработчик сигнала вообще не вызывается. Подозреваю что дело тут как раз в том что сигнал приходит во время ожидания в системном вызове - видимо libc ставит на это время какой-то свой обработчик. Как с этим можно бороться - чтобы всё-таки получить этот сигнал?



Ответ на:
комментарий
от braindef

Ответ на:
комментарий
от Onanim

Ответ на:
комментарий
от braindef

Ответ на:
комментарий
от slav

Ответ на:
комментарий
от Onanim

Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Надёжная проверка сигнала (2012)
- Форум Проблема с alarm (2006)
- Форум пернаправление ввода (2017)
- Форум Как правильно «будить» процесс, если он залочен блокирующей функцией? (2024)
- Форум Как правильно обрабатывать в программе завершение работы системы (2022)
- Форум ожидание сигнала (2003)
- Форум Как выйти из системного вызова внутри потока? (2021)
- Форум Как сократить время между системными вызовами в программе? (2004)
- Новости strace 4.18 (2017)
- Новости Выпуск earlyoom 1.2 (2018)