/**
 * Executes the algorithms on a separate thread and waits for their completion.
 *
 * @return False if the batch was stopped due to error
 */
bool BatchAlgorithmRunner::executeBatch() {
  m_notificationCenter.addObserver(m_notificationObserver);
  Poco::ActiveResult<bool> result = m_executeAsync(Poco::Void());
  result.wait();
  m_notificationCenter.removeObserver(m_notificationObserver);
  return result.data();
}
/**
 * Starts executing the queue of algorithms on a separate thread.
 */
void BatchAlgorithmRunner::executeBatchAsync() {
  m_notificationCenter.addObserver(m_notificationObserver);
  Poco::ActiveResult<bool> result = m_executeAsync(Poco::Void());
}
/**
 * Starts executing the queue of algorithms on a separate thread.
 */
void BatchAlgorithmRunner::executeBatchAsync() {
  m_notificationCenter.addObserver(m_notificationObserver);
  m_executeAsync(Poco::Void());
}