Доброго времени суток!
Встала задача асинхронной обработки сигналов приложением при помощи Boost.Asio, при этом не надо, чтобы приложение сразу выходило после обработки первого сигнала, а дальше ждало новых сигналов. В документации написано, что метод run()
класса boost::asio::io_service
не должен вызываться из обработчика сигналов (точнее, до того, как сигнал будет обработан), но это ок, также там написано, что для таких целей существует метод reset
, который должен вызываться перед каждым последующим вызовом run()
. Поясните, почему этот код не робит и как его поправить? Вроде все согласно документации...
io_service_.run();
for(;;)
{
io_service_.reset();
io_service_.run();
}