Я выполняю цикл epoll, и иногда мой вызов epoll_wait возвращает -1 с errno, установленным в EINTR. Иногда я хочу, чтобы это завершило цикл epoll, как в случае с SIGTERM или SIGINT. Но у меня есть этот код, скомпилированный с флагом -pg, поэтому периодически появляются сигналы SIGPROF (27), которые останавливают мой цикл.
Итак … возможно ли включить сигнум, чтобы я мог определить, когда выйти или продолжить? Я хотел бы избежать всего, что использует глобальное использование для отслеживания самого последнего сработавшего сигнала.
Добавьте обработчики сигналов на SIGTERM и SIGINT. Внутри этих обработчиков вы устанавливаете переменную, которую вы проверяете в основном цикле epoll
Других решений пока нет …