#include <WaitingTaskHolder.h>
Public Member Functions | |
void | doneWaiting (std::exception_ptr iExcept) |
tbb::task_group * | group () const noexcept |
bool | hasTask () const noexcept |
WaitingTaskHolder & | operator= (const WaitingTaskHolder &iRHS) |
WaitingTaskHolder & | operator= (WaitingTaskHolder &&iRHS) |
void | presetTaskAsFailed (std::exception_ptr iExcept) |
bool | taskHasFailed () const noexcept |
WaitingTaskHolder () | |
WaitingTaskHolder (const WaitingTaskHolder &iHolder) | |
WaitingTaskHolder (tbb::task_group &iGroup, edm::WaitingTask *iTask) | |
WaitingTaskHolder (WaitingTaskHolder &&iOther) | |
~WaitingTaskHolder () | |
Private Member Functions | |
WaitingTask * | release_no_decrement () noexcept |
Private Attributes | |
tbb::task_group * | m_group |
WaitingTask * | m_task |
Friends | |
class | WaitingTaskList |
class | WaitingTaskWithArenaHolder |
Definition at line 32 of file WaitingTaskHolder.h.
|
inline |
Definition at line 37 of file WaitingTaskHolder.h.
|
inlineexplicit |
Definition at line 39 of file WaitingTaskHolder.h.
References edm::TaskBase::increment_ref_count(), and m_task.
|
inline |
Definition at line 42 of file WaitingTaskHolder.h.
References doneWaiting(), and m_task.
|
inline |
Definition at line 48 of file WaitingTaskHolder.h.
References edm::TaskBase::increment_ref_count(), and m_task.
|
inline |
Definition at line 52 of file WaitingTaskHolder.h.
|
inline |
Definition at line 93 of file WaitingTaskHolder.h.
References edm::WaitingTask::dependentTaskFailed(), m_group, m_task, alignCSCRings::s, and TrackValidation_cff::task.
Referenced by edm::WaitingTaskList::add(), edm::beginGlobalTransitionAsync(), edm::EventProcessor::beginLumiAsync(), edm::beginStreamTransitionAsync(), edm::endGlobalTransitionAsync(), edm::endStreamTransitionAsync(), edm::Worker::HandleExternalWorkExceptionTask::execute(), edm::StreamSchedule::finishedPaths(), edm::EventProcessor::handleNextEventForStreamAsync(), edm::SubProcess::processAsync(), edm::StreamSchedule::processOneEventAsync(), edm::GlobalSchedule::processOneGlobalAsync(), edm::StreamSchedule::processOneStreamAsync(), edm::eventsetup::synchronousEventSetupForInstance(), edm::OutputModuleCommunicatorT< T >::writeLumiAsync(), edm::OutputModuleCommunicatorT< T >::writeProcessBlockAsync(), edm::OutputModuleCommunicatorT< T >::writeRunAsync(), and ~WaitingTaskHolder().
|
inlinenoexcept |
since tbb::task_group is thread safe, we can return it non-const from here since the object is not really part of the state of the holder
Definition at line 77 of file WaitingTaskHolder.h.
References m_group.
Referenced by edm::WaitingTaskList::add(), edm::beginGlobalTransitionAsync(), edm::EventProcessor::beginLumiAsync(), edm::beginStreamTransitionAsync(), edm::EventProcessor::continueLumiAsync(), edm::SubProcess::doEndProcessBlockAsync(), evf::GlobalEvFOutputEventWriter::doOutputEventAsync(), edm::endGlobalTransitionAsync(), edm::endStreamTransitionAsync(), edm::EDLooperBase::esPrefetchAsync(), edm::Worker::esPrefetchAsync(), edm::EventProcessor::handleNextEventForStreamAsync(), edm::waiting_task::detail::WaitingTaskChain< U >::lastTask(), edm::waiting_task::detail::WaitingTaskChain< U, T... >::lastTask(), edm::waiting_task::detail::WaitingTaskChain< Conditional< U >, T... >::lastTask(), edm::eventsetup::Callback< T, TReturn, TRecord, TDecorator >::prefetchAsync(), edm::DelayedReaderInputProductResolver::prefetchAsync_(), edm::PuttableProductResolver::prefetchAsync_(), edm::UnscheduledProductResolver::prefetchAsync_(), edm::SwitchProducerProductResolver::prefetchAsync_(), edm::SwitchAliasProductResolver::prefetchAsync_(), edm::NoProcessProductResolver::prefetchAsync_(), edm::eventsetup::ESSourceDataProxyBase::prefetchAsyncImpl(), edm::eventsetup::DataProxyTemplate< RecordT, DataT >::prefetchAsyncImpl(), edm::SubProcess::processAsync(), edm::EventProcessor::processEventAsync(), edm::StreamSchedule::processOneEventAsync(), edm::GlobalSchedule::processOneGlobalAsync(), edm::Path::processOneOccurrenceAsync(), edm::StreamSchedule::processOneStreamAsync(), edm::waiting_task::detail::WaitingTaskChain< U, T... >::runLast(), edm::waiting_task::detail::WaitingTaskChain< Conditional< U >, T... >::runLast(), edm::eventsetup::EventSetupRecordIOVQueue::startNewIOVAsync(), edm::EventProcessor::streamEndLumiAsync(), edm::OutputModuleCommunicatorT< T >::writeLumiAsync(), edm::OutputModuleCommunicatorT< T >::writeProcessBlockAsync(), and edm::OutputModuleCommunicatorT< T >::writeRunAsync().
|
inlinenoexcept |
Definition at line 73 of file WaitingTaskHolder.h.
References m_task.
Referenced by edm::eventsetup::EventSetupRecordIOVQueue::endIOVAsync().
|
inline |
Definition at line 56 of file WaitingTaskHolder.h.
References m_group, m_task, std::swap(), and createJobs::tmp.
|
inline |
Definition at line 63 of file WaitingTaskHolder.h.
References m_group, m_task, eostools::move(), std::swap(), and createJobs::tmp.
|
inline |
Use in the case where you need to inform the parent task of a failure before some other child task which may be run later reports a different, but related failure. You must later call doneWaiting in the same thread passing the same exceptoin.
Definition at line 87 of file WaitingTaskHolder.h.
References edm::WaitingTask::dependentTaskFailed(), and m_task.
|
inlineprivatenoexcept |
Definition at line 112 of file WaitingTaskHolder.h.
References m_task, and submitPVValidationJobs::t.
Referenced by edm::WaitingTaskList::add().
|
inlinenoexcept |
Definition at line 71 of file WaitingTaskHolder.h.
References edm::WaitingTask::exceptionPtr(), and m_task.
Referenced by edm::EventProcessor::beginLumiAsync().
|
friend |
Definition at line 34 of file WaitingTaskHolder.h.
|
friend |
Definition at line 35 of file WaitingTaskHolder.h.
|
private |
Definition at line 119 of file WaitingTaskHolder.h.
Referenced by doneWaiting(), group(), and operator=().
|
private |
Definition at line 118 of file WaitingTaskHolder.h.
Referenced by doneWaiting(), hasTask(), operator=(), presetTaskAsFailed(), release_no_decrement(), taskHasFailed(), WaitingTaskHolder(), and ~WaitingTaskHolder().