Public Member Functions | Private Attributes | List of all members
art::EndPathExecutor::PathsDoneTask Class Reference

Public Member Functions

 PathsDoneTask (EndPathExecutor *const endPathExec, WaitingTaskPtr const finalizeEventTask, GlobalTaskGroup &taskGroup)
 
void operator() (exception_ptr const ex)
 

Private Attributes

EndPathExecutor *const endPathExec_
 
WaitingTaskPtr const finalizeEventTask_
 
GlobalTaskGrouptaskGroup_
 

Detailed Description

Definition at line 264 of file EndPathExecutor.cc.

Constructor & Destructor Documentation

art::EndPathExecutor::PathsDoneTask::PathsDoneTask ( EndPathExecutor *const  endPathExec,
WaitingTaskPtr const  finalizeEventTask,
GlobalTaskGroup taskGroup 
)
inline

Definition at line 266 of file EndPathExecutor.cc.

269  : endPathExec_{endPathExec}
270  , finalizeEventTask_{finalizeEventTask}
271  , taskGroup_{taskGroup}
272  {}

Member Function Documentation

void art::EndPathExecutor::PathsDoneTask::operator() ( exception_ptr const  ex)
inline

Definition at line 275 of file EndPathExecutor.cc.

276  {
277  auto const scheduleID = endPathExec_->sc_.id();
278 
279  // Note: When we start our parent task is the eventLoop task.
280  TDEBUG_BEGIN_TASK_SI(4, scheduleID);
281 
282  if (ex) {
283  try {
284  rethrow_exception(ex);
285  }
286  catch (cet::exception& e) {
287  Exception tmp(errors::EventProcessorFailure, "EndPathExecutor:");
288  tmp << "an exception occurred during current event processing\n" << e;
289  taskGroup_.may_run(finalizeEventTask_, make_exception_ptr(tmp));
290  TDEBUG_END_TASK_SI(4, scheduleID)
291  << "end path processing terminate because of EXCEPTION";
292  return;
293  }
294  catch (...) {
295  taskGroup_.may_run(finalizeEventTask_, current_exception());
296  TDEBUG_END_TASK_SI(4, scheduleID)
297  << "end path processing terminate because of EXCEPTION";
298  return;
299  }
300  }
301 
303 
305  TDEBUG_END_TASK_SI(4, scheduleID);
306  }
#define TDEBUG_BEGIN_TASK_SI(LEVEL, SI)
#define TDEBUG_END_TASK_SI(LEVEL, SI)
const double e
ScheduleContext const sc_
string tmp
Definition: languages.py:63
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
void may_run(hep::concurrency::WaitingTaskPtr task, std::exception_ptr ex_ptr={})
void incrementPassedEventCount()
Definition: PathsInfo.cc:101
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

Member Data Documentation

EndPathExecutor* const art::EndPathExecutor::PathsDoneTask::endPathExec_
private

Definition at line 309 of file EndPathExecutor.cc.

WaitingTaskPtr const art::EndPathExecutor::PathsDoneTask::finalizeEventTask_
private

Definition at line 310 of file EndPathExecutor.cc.

GlobalTaskGroup& art::EndPathExecutor::PathsDoneTask::taskGroup_
private

Definition at line 311 of file EndPathExecutor.cc.


The documentation for this class was generated from the following file: