Как перезапустить задачу по внешнему сигналу?
Разбираюсь с библиотекой POCO и пытаюсь понять как по внешнему сигналу, например HUP, перезапустить уже исполняющую задачу. Пример программы такой
namespace {
static void handleSignal(int sig) {
Poco::Util::Application& app=Poco::Util::Application::instance();
app.logger().information("Signal HUP...");
<!- тут нужно получить доступ к задаче taskTwo и перезапустить ее -!>
}
}
int Server::main(const ArgVec& args) {
struct sigaction handler;
handler.sa_handler=handleSignal;
handler.sa_flags=0;
sigemptyset(&handler.sa_mask);
sigaction(SIGHUP,&handler,NULL);
Poco::TaskManager tm;
tm.start(new taskOne(_config,logger(),this));
tm.start(new taskTwo(_config,logger(),this));
tm.start(new taskThree(_config,logger(),this));
waitForTerminationRequest();
tm.cancelAll();
tm.joinAll();
return Poco::Util::Application::EXIT_OK;
}
Как в функции handleSignal получить доступ к задаче taskTwo?