1 #ifndef FWCore_Concurrency_WaitingTask_h 2 #define FWCore_Concurrency_WaitingTask_h 34 class WaitingTaskWithArenaHolder;
65 if (iPtr and not
m_ptr) {
66 auto temp = std::make_unique<std::exception_ptr>(iPtr);
67 std::exception_ptr* expected =
nullptr;
68 if( m_ptr.compare_exchange_strong(expected,
temp.get()) ) {
74 std::atomic<std::exception_ptr*>
m_ptr;
91 template<
typename ALLOC,
typename F>
void dependentTaskFailed(std::exception_ptr iPtr)
Called if waited for task failed.
task * execute() override
WaitingTask()
Constructor.
FunctorWaitingTask< F > * make_waiting_task(ALLOC &&iAlloc, F f)
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
std::exception_ptr const * exceptionPtr() const
Returns exception thrown by dependent task.
std::atomic< std::exception_ptr * > m_ptr