#include <userver/engine/task/shared_task_with_result.hpp>
Public Member Functions | |
SharedTaskWithResult ()=default | |
Default constructor. | |
decltype(auto) | Get () const &noexcept(false) |
Returns (or rethrows) the result of task invocation. Task remains valid after return from this method, thread(coro)-safe. | |
std::add_lvalue_reference< const T > | Get () && |
![]() | |
Task () | |
Default constructor. | |
virtual | ~Task () |
Destructor. | |
Task (Task &&) noexcept | |
Task & | operator= (Task &&) noexcept |
bool | IsValid () const |
Checks whether this Task object owns an actual task (not State::kInvalid ) | |
State | GetState () const |
Gets the task State. | |
bool | IsFinished () const |
Returns whether the task finished execution. | |
void | Wait () const noexcept(false) |
Suspends execution until the task finishes or caller is cancelled. Can be called from coroutine context only. For non-coroutine context use BlockingWait(). | |
template<typename Rep , typename Period > | |
void | WaitFor (const std::chrono::duration< Rep, Period > &) const noexcept(false) |
Suspends execution until the task finishes or after the specified timeout or until caller is cancelled. | |
template<typename Clock , typename Duration > | |
void | WaitUntil (const std::chrono::time_point< Clock, Duration > &) const noexcept(false) |
Suspends execution until the task finishes or until the specified time point is reached or until caller is cancelled. | |
void | WaitUntil (Deadline) const |
Suspends execution until the task finishes or until the specified deadline is reached or until caller is cancelled. | |
void | Detach () && |
Detaches task, allowing it to continue execution out of scope; memory safety is much better with concurrent::BackgroundTaskStorage. | |
void | RequestCancel () |
Queues task cancellation request. | |
void | SyncCancel () noexcept |
Cancels the task and suspends execution until it is finished. Can be called from coroutine context only. For non-coroutine context use RequestCancel() + BlockingWait(). | |
TaskCancellationReason | CancellationReason () const |
Gets task cancellation reason. | |
void | BlockingWait () const |
Additional Inherited Members | |
![]() | |
enum class | Importance { kNormal , kCritical } |
Task importance. More... | |
enum class | State { kInvalid , kNew , kQueued , kRunning , kSuspended , kCancelled , kCompleted } |
Task state. More... | |
enum class | WaitMode { kSingleWaiter , kMultipleWaiters } |
Task wait mode. More... | |
![]() | |
static const std::string & | GetStateName (State state) |
Asynchronous task with result
Definition at line 35 of file shared_task_with_result.hpp.
|
default |
Default constructor.
Creates an invalid task.
|
inline |
Definition at line 61 of file shared_task_with_result.hpp.
|
inline |
Returns (or rethrows) the result of task invocation. Task remains valid after return from this method, thread(coro)-safe.
WaitInterruptedException | when current_task::IsCancelRequested() and no TaskCancellationBlockers are present. |
TaskCancelledException | if no result is available because the task was cancelled |
Definition at line 50 of file shared_task_with_result.hpp.