Как перезапустить задачу по внешнему сигналу?

Разбираюсь с библиотекой 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?


Ответы (0 шт):