CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
edm::Worker::HandleExternalWorkExceptionTask Class Reference
Inheritance diagram for edm::Worker::HandleExternalWorkExceptionTask:
edm::WaitingTask

Public Member Functions

tbb::task * execute () override
 
 HandleExternalWorkExceptionTask (Worker *worker, WaitingTask *runModuleTask, ParentContext const &parentContext)
 
- Public Member Functions inherited from edm::WaitingTask
std::exception_ptr const * exceptionPtr () const
 Returns exception thrown by dependent task. More...
 
 WaitingTask ()
 Constructor. More...
 
 ~WaitingTask () override
 

Private Attributes

ParentContext const m_parentContext
 
WaitingTaskm_runModuleTask
 
Workerm_worker
 

Detailed Description

Definition at line 588 of file Worker.h.

Constructor & Destructor Documentation

edm::Worker::HandleExternalWorkExceptionTask::HandleExternalWorkExceptionTask ( Worker worker,
WaitingTask runModuleTask,
ParentContext const &  parentContext 
)

Definition at line 431 of file Worker.cc.

434  : m_worker(worker), m_runModuleTask(runModuleTask), m_parentContext(parentContext) {}

Member Function Documentation

tbb::task * edm::Worker::HandleExternalWorkExceptionTask::execute ( void  )
override

Definition at line 436 of file Worker.cc.

References edm::WaitingTaskHolder::doneWaiting(), edm::WaitingTask::exceptionPtr(), edm::Worker::handleExternalWorkException(), m_parentContext, m_runModuleTask, and m_worker.

436  {
437  auto excptr = exceptionPtr();
438  if (excptr) {
439  // increment the ref count so the holder will not spawn it
440  m_runModuleTask->set_ref_count(1);
442  holder.doneWaiting(m_worker->handleExternalWorkException(excptr, m_parentContext));
443  }
444  m_runModuleTask->set_ref_count(0);
445  // Depend on TBB Scheduler Bypass to run the next task
446  return m_runModuleTask;
447  }
std::exception_ptr const * exceptionPtr() const
Returns exception thrown by dependent task.
Definition: WaitingTask.h:51
std::exception_ptr handleExternalWorkException(std::exception_ptr const *iEPtr, ParentContext const &parentContext)
Definition: Worker.cc:417

Member Data Documentation

ParentContext const edm::Worker::HandleExternalWorkExceptionTask::m_parentContext
private

Definition at line 597 of file Worker.h.

Referenced by execute().

WaitingTask* edm::Worker::HandleExternalWorkExceptionTask::m_runModuleTask
private

Definition at line 596 of file Worker.h.

Referenced by execute().

Worker* edm::Worker::HandleExternalWorkExceptionTask::m_worker
private

Definition at line 595 of file Worker.h.

Referenced by execute().