void c_AsyncFunctionWaitHandle::markAsFailed(const Object& exception) { AsioSession* session = AsioSession::Get(); if (UNLIKELY(session->hasOnAsyncFunctionFailCallback())) { session->onAsyncFunctionFail(this, exception); } setState(STATE_FAILED); tvWriteObject(exception.get(), &m_resultOrException); done(); }
void c_AsyncFunctionWaitHandle::markAsFailed(CObjRef exception) { AsioSession* session = AsioSession::Get(); if (UNLIKELY(session->hasOnAsyncFunctionFailCallback())) { session->onAsyncFunctionFail(this, exception); } setException(exception.get()); m_continuation = nullptr; m_child = nullptr; }
void c_AsyncFunctionWaitHandle::fail(ObjectData* exception) { AsioSession* session = AsioSession::Get(); if (UNLIKELY(session->hasOnAsyncFunctionFailCallback())) { session->onAsyncFunctionFail(this, exception); } auto const parentChain = getFirstParent(); setState(STATE_FAILED); tvWriteObject(exception, &m_resultOrException); UnblockChain(parentChain); decRefObj(this); }