The base implementation of a first-class task. This class contains all the non-type specific implementation details of the task.
More...
#include <pplxtasks.h>
Inheritance diagram for pplx::details::_Task_impl_base:
Public Types
enum
_TaskInternalState {
_Created,
_Started,
_PendingCancel,
_Completed,
_Canceled
}
Public Member Functions
Requests cancellation on the task and schedules continuations if the task can be transitioned to a terminal state.
More...
bool _Cancel (bool _SynchronousCancel)
bool
_CancelWithExceptionHolder (const std::shared_ptr<
_ExceptionHolder > &_ExHolder, bool _PropagatedFromAncestor)
bool _CancelWithException (const std::exception_ptr &_Exception)
void _DeregisterCancellation ()
bool _IsCreated ()
bool _IsStarted ()
bool _IsPendingCancel ()
bool _IsCompleted ()
bool _IsCanceled ()
bool _HasUserException ()
bool _IsApartmentAware ()
void _SetAsync (bool _Async=true)
Helper function to schedule the task on the Task Collection.
More...
Function executes a continuation. This function is recorded by a parent task implementation when a continuation is created in order to execute later.
More...
Schedule the actual continuation. This will either schedule the function on the continuation task's implementation if the task has completed or append it to a list of functions to execute when the task actually does complete.
More...
void _RunTaskContinuations ()
Static Public Member Functions
template<typename _ReturnType , typename _InternalReturnType >
static void
_AsyncInit (const typename
_Task_ptr< _ReturnType >::_Type &_OuterTask, const
task< _InternalReturnType > &_UnwrappedTask)
Public Attributes
volatile _TaskInternalState _M_TaskState
bool _M_fFromAsync
bool _M_fUnwrappedTask
::pplx::extensibility::critical_section_t _M_ContinuationsCritSec
Detailed Description
The base implementation of a first-class task. This class contains all the non-type specific implementation details of the task.
Member Function Documentation
virtual bool pplx::details::_Task_impl_base::_CancelAndRunContinuations
(
bool
_SynchronousCancel,
bool
_UserException,
bool
_PropagatedFromAncestor,
)
pure virtual
Requests cancellation on the task and schedules continuations if the task can be transitioned to a terminal state.
- Parameters
-
_SynchronousCancel Set to true if the cancel takes place as a result of the task body encountering an exception, or because an ancestor or
task_completion_event the task was registered with were canceled with an exception. A synchronous cancel is one that assures the task could not be running on a different thread at the time the cancellation is in progress. An asynchronous cancel is one where the thread performing the cancel has no control over the thread that could be executing the task, that is the task could execute concurrently while the cancellation is in progress.
_UserException Whether an exception other than the internal runtime cancellation exceptions caused this cancellation.
_PropagatedFromAncestor Whether this exception came from an ancestor task or a
task_completion_event as opposed to an exception that was encountered by the task itself. Only valid when _UserException is set to true.
_ExHolder The exception holder that represents the exception. Only valid when _UserException is set to true.
Implemented in pplx::details::_Task_impl< _ReturnType >.
Function executes a continuation. This function is recorded by a parent task implementation when a continuation is created in order to execute later.
- Parameters
-
_PTaskHandle The continuation task chore handle that need to be executed.
Schedule the actual continuation. This will either schedule the function on the continuation task's implementation if the task has completed or append it to a list of functions to execute when the task actually does complete.
- Template Parameters
-
_FuncInputType The input type of the task.
_FuncOutputType The output type of the task.
_TaskInliningMode_t
_InliningMode
)
inline
Helper function to schedule the task on the Task Collection.
- Parameters
-
_PTaskHandle The task chore handle that need to be executed.
_InliningMode The inlining scheduling policy for current _PTaskHandle.
The documentation for this struct was generated from the following file: