LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
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 237 of file EndPathExecutor.cc.

Constructor & Destructor Documentation

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

Definition at line 239 of file EndPathExecutor.cc.

References art::EndPathExecutor::taskGroup_.

242  : endPathExec_{endPathExec}
243  , finalizeEventTask_{finalizeEventTask}
244  , taskGroup_{taskGroup}
245  {}

Member Function Documentation

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

Definition at line 248 of file EndPathExecutor.cc.

References e, art::errors::EventProcessorFailure, art::GlobalTaskGroup::may_run(), art::EndPathExecutor::taskGroup_, TDEBUG_BEGIN_TASK_SI, TDEBUG_END_TASK_SI, and tmp.

249  {
250  auto const scheduleID = endPathExec_->sc_.id();
251 
252  // Note: When we start our parent task is the eventLoop task.
253  TDEBUG_BEGIN_TASK_SI(4, scheduleID);
254 
255  if (ex) {
256  try {
257  rethrow_exception(ex);
258  }
259  catch (cet::exception& e) {
260  Exception tmp(errors::EventProcessorFailure, "EndPathExecutor:");
261  tmp << "an exception occurred during current event processing\n" << e;
262  taskGroup_.may_run(finalizeEventTask_, make_exception_ptr(tmp));
263  TDEBUG_END_TASK_SI(4, scheduleID)
264  << "end path processing terminate because of EXCEPTION";
265  return;
266  }
267  catch (...) {
268  taskGroup_.may_run(finalizeEventTask_, current_exception());
269  TDEBUG_END_TASK_SI(4, scheduleID)
270  << "end path processing terminate because of EXCEPTION";
271  return;
272  }
273  }
274 
276 
278  TDEBUG_END_TASK_SI(4, scheduleID);
279  }
#define TDEBUG_BEGIN_TASK_SI(LEVEL, SI)
#define TDEBUG_END_TASK_SI(LEVEL, SI)
Float_t tmp
Definition: plot.C:35
ScheduleContext const sc_
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:104
Float_t e
Definition: plot.C:35
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

Member Data Documentation

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

Definition at line 282 of file EndPathExecutor.cc.

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

Definition at line 283 of file EndPathExecutor.cc.

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

Definition at line 284 of file EndPathExecutor.cc.


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