Поймать сигналы: использовать функцию-член в качестве обработчика сигнала

У меня есть объект, который выполняет некоторую работу в бесконечном цикле.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;
    }

};

Ответы на вопрос(2)

Ваш ответ на вопрос