1 #ifndef FWCore_Concurrency_WaitingTask_h 2 #define FWCore_Concurrency_WaitingTask_h 34 class WaitingTaskWithArenaHolder;
60 if (iPtr and not
m_ptr) {
61 auto temp = std::make_unique<std::exception_ptr>(iPtr);
62 std::exception_ptr* expected =
nullptr;
63 if (m_ptr.compare_exchange_strong(expected,
temp.get())) {
69 std::atomic<std::exception_ptr*>
m_ptr;
86 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