Поймать сигналы: использовать функцию-член в качестве обработчика сигнала
У меня есть объект, который выполняет некоторую работу в бесконечном цикле.main()
создает объект и вызываетrun()
метод. Так как я неЯ не хочу использовать потоки, мне нужно решение, чтобы мой объект перестал работать. Ниже вы видите, что ямы придумали.
struct Foo
{
void run()
{
running = 1;
while (running)
do_something_useful();
std::cout < "Execution stopped." < std::endl;
}
bool running;
void catch_signal(int signal)
{
std::cout < "Caught signal " < signal < std::endl;
if( signal == SIGTERM )
running = false;
}
};