libcopp
1.1.0
|
#include <task.h>
Data Structures | |
struct | task_group |
Public Types | |
typedef task< TCO_MACRO, TTASK_MACRO > | self_t |
typedef std::intrusive_ptr< self_t > | ptr_t |
typedef TCO_MACRO | macro_coroutine_t |
typedef TTASK_MACRO | macro_task_t |
typedef macro_coroutine_t::coroutine_t | coroutine_t |
typedef macro_coroutine_t::stack_allocator_t | stack_allocator_t |
typedef macro_task_t::id_t | id_t |
typedef macro_task_t::id_allocator_t | id_allocator_t |
Public Member Functions | |
task (size_t stack_size) | |
constuctor More... | |
ptr_t | next (ptr_t next_task, void *priv_data=UTIL_CONFIG_NULLPTR) |
add next task to run when task finished More... | |
template<typename Ty > | |
ptr_t | next (const Ty &functor, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
create next task with functor More... | |
template<typename Ty > | |
ptr_t | next (const Ty &functor, typename coroutine_t::allocator_type &alloc, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
template<typename Ty > | |
ptr_t | next (Ty(*func)(void *), void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
create next task with function More... | |
template<typename Ty > | |
ptr_t | next (Ty(*func)(void *), typename coroutine_t::allocator_type &alloc, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
template<typename Ty , typename TInst > | |
ptr_t | next (Ty(TInst::*func), TInst *instance, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
create next task with function More... | |
template<typename Ty , typename TInst > | |
ptr_t | next (Ty(TInst::*func), TInst *instance, typename coroutine_t::allocator_type &alloc, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
int | await (const ptr_t &wait_task) |
await another cotask to finish More... | |
template<typename TTask > | |
int | await (TTask *wait_task) |
ptr_t | then (ptr_t next_task, void *priv_data=UTIL_CONFIG_NULLPTR) |
add task to run when task finished More... | |
template<typename Ty > | |
ptr_t | then (const Ty &functor, typename coroutine_t::allocator_type &alloc, void *priv_data=UTIL_CONFIG_NULLPTR, size_t stack_size=0, size_t private_buffer_size=0) |
create next task with functor using the same allocator and private buffer size as this task More... | |
template<typename Ty > | |
ptr_t | then (Ty(*func)(void *), void *priv_data=UTIL_CONFIG_NULLPTR) |
virtual | ~task () |
coroutine_t::ptr_t & | get_coroutine_context () UTIL_CONFIG_NOEXCEPT |
const coroutine_t::ptr_t & | get_coroutine_context () const UTIL_CONFIG_NOEXCEPT |
id_t | get_id () const UTIL_CONFIG_NOEXCEPT |
virtual int | get_ret_code () const UTIL_CONFIG_OVERRIDE |
virtual int | start (void *priv_data, EN_TASK_STATUS expected_status=EN_TS_CREATED) UTIL_CONFIG_OVERRIDE |
virtual int | resume (void *priv_data, EN_TASK_STATUS expected_status=EN_TS_WAITING) UTIL_CONFIG_OVERRIDE |
virtual int | yield (void **priv_data) UTIL_CONFIG_OVERRIDE |
virtual int | cancel (void *priv_data) UTIL_CONFIG_OVERRIDE |
virtual int | kill (enum EN_TASK_STATUS status, void *priv_data) UTIL_CONFIG_OVERRIDE |
virtual bool | is_completed () const UTIL_CONFIG_NOEXCEPT UTIL_CONFIG_OVERRIDE |
void * | get_private_buffer () |
size_t | get_private_buffer_size () |
size_t | use_count () const |
EN_TASK_STATUS | get_status () const UTIL_CONFIG_NOEXCEPT |
virtual bool | is_canceled () const UTIL_CONFIG_NOEXCEPT |
virtual bool | is_faulted () const UTIL_CONFIG_NOEXCEPT |
virtual bool | is_timeout () const UTIL_CONFIG_NOEXCEPT |
bool | is_exiting () const UTIL_CONFIG_NOEXCEPT |
check if a cotask is exiting More... | |
int | start () |
int | resume () |
int | yield () |
int | cancel () |
int | kill (void *priv_data) |
int | kill (enum EN_TASK_STATUS status) |
int | kill () |
virtual int | on_finished () |
action_ptr_t | get_raw_action () const UTIL_CONFIG_NOEXCEPT |
get raw action pointer More... | |
Static Public Member Functions | |
template<typename TAct , typename Ty > | |
static ptr_t | create_with_delegate (const Ty &callable, typename coroutine_t::allocator_type &alloc, size_t stack_size=0, size_t private_buffer_size=0) |
create task with functor More... | |
template<typename Ty > | |
static ptr_t | create (const Ty &functor, size_t stack_size=0, size_t private_buffer_size=0) |
create task with functor More... | |
template<typename Ty > | |
static ptr_t | create (const Ty &functor, typename coroutine_t::allocator_type &alloc, size_t stack_size=0, size_t private_buffer_size=0) |
template<typename Ty > | |
static ptr_t | create (Ty(*func)(void *), typename coroutine_t::allocator_type &alloc, size_t stack_size=0, size_t private_buffer_size=0) |
create task with function More... | |
template<typename Ty > | |
static ptr_t | create (Ty(*func)(void *), size_t stack_size=0, size_t private_buffer_size=0) |
template<typename Ty , typename TInst > | |
static ptr_t | create (Ty(TInst::*func), TInst *instance, typename coroutine_t::allocator_type &alloc, size_t stack_size=0, size_t private_buffer_size=0) |
create task with function More... | |
template<typename Ty , typename TInst > | |
static ptr_t | create (Ty(TInst::*func), TInst *instance, size_t stack_size=0, size_t private_buffer_size=0) |
static self_t * | this_task () |
static void * | add_buffer_offset (void *in, size_t off) |
static void * | sub_buffer_offset (void *in, size_t off) |
Protected Member Functions | |
void | _set_action (action_ptr_t action) |
action_ptr_t | _get_action () |
bool | _cas_status (EN_TASK_STATUS &expected, EN_TASK_STATUS desired) |
Protected Attributes | |
void * | finish_priv_data_ |
Private Types | |
typedef impl::task_impl::action_ptr_t | action_ptr_t |
Private Member Functions | |
task (const task &) UTIL_CONFIG_DELETED_FUNCTION | |
void | active_next_tasks () |
int | _notify_finished (void *priv_data) |
Private Attributes | |
id_t | id_ |
size_t | stack_size_ |
coroutine_t::ptr_t | coroutine_obj_ |
task_group | next_list_ |
void(* | action_destroy_fn_ )(void *) |
util::lock::atomic_int_type< size_t > | ref_count_ |
util::lock::spin_lock | next_list_lock_ |
Friends | |
void | intrusive_ptr_add_ref (self_t *p) |
void | intrusive_ptr_release (self_t *p) |
|
private |
typedef macro_coroutine_t::coroutine_t cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_t |
typedef macro_task_t::id_allocator_t cotask::task< TCO_MACRO, TTASK_MACRO >::id_allocator_t |
typedef macro_task_t::id_t cotask::task< TCO_MACRO, TTASK_MACRO >::id_t |
typedef TCO_MACRO cotask::task< TCO_MACRO, TTASK_MACRO >::macro_coroutine_t |
typedef TTASK_MACRO cotask::task< TCO_MACRO, TTASK_MACRO >::macro_task_t |
typedef std::intrusive_ptr<self_t> cotask::task< TCO_MACRO, TTASK_MACRO >::ptr_t |
typedef task<TCO_MACRO, TTASK_MACRO> cotask::task< TCO_MACRO, TTASK_MACRO >::self_t |
typedef macro_coroutine_t::stack_allocator_t cotask::task< TCO_MACRO, TTASK_MACRO >::stack_allocator_t |
|
inline |
constuctor
Definition at line 53 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create_with_delegate(), cotask::task< TCO_MACRO, TTASK_MACRO >::id_, cotask::task< TCO_MACRO, TTASK_MACRO >::ref_count_, and util::lock::atomic_int_type< Ty >::store().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::use_count().
|
inlinevirtual |
Definition at line 439 of file task.h.
References cotask::EN_TS_CREATED, cotask::EN_TS_TIMEOUT, cotask::impl::task_impl::get_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::id_, and cotask::impl::task_impl::kill().
|
private |
|
protectedinherited |
Definition at line 55 of file task_impl.cpp.
References util::lock::atomic_int_type< Ty >::compare_exchange_weak(), util::lock::memory_order_acq_rel, util::lock::memory_order_acquire, and cotask::impl::task_impl::status_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::cancel(), cotask::impl::task_impl::get_raw_action(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::task< TCO_MACRO, TTASK_MACRO >::start().
|
protectedinherited |
Definition at line 53 of file task_impl.cpp.
References cotask::impl::task_impl::action_.
Referenced by cotask::impl::task_impl::_notify_finished(), and cotask::impl::task_impl::get_raw_action().
|
inlineprivate |
Definition at line 636 of file task.h.
References cotask::impl::task_impl::_notify_finished(), cotask::task< TCO_MACRO, TTASK_MACRO >::active_next_tasks(), and cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::cancel(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::task< TCO_MACRO, TTASK_MACRO >::start().
|
protectedinherited |
Definition at line 51 of file task_impl.cpp.
References print_color::action, and cotask::impl::task_impl::action_.
Referenced by cotask::impl::task_impl::get_raw_action().
|
inlineprivate |
Definition at line 611 of file task.h.
References cotask::EN_TS_INVALID, cotask::EN_TS_RUNNING, cotask::task< TCO_MACRO, TTASK_MACRO >::task_group::member_list_, cotask::task< TCO_MACRO, TTASK_MACRO >::next_list_, and cotask::task< TCO_MACRO, TTASK_MACRO >::next_list_lock_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::_notify_finished().
|
inlinestatic |
Definition at line 581 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer().
|
inline |
await another cotask to finish
wait_task | which stack to wait for |
Definition at line 338 of file task.h.
References copp::COPP_EC_ARGS_ERROR, copp::COPP_EC_TASK_ADD_NEXT_FAILED, copp::COPP_EC_TASK_CAN_NOT_WAIT_SELF, copp::COPP_EC_TASK_IS_EXITING, copp::COPP_EC_TASK_NOT_IN_ACTION, std::intrusive_ptr< T >::get(), cotask::impl::task_impl::is_exiting(), cotask::task< TCO_MACRO, TTASK_MACRO >::this_task(), and cotask::impl::task_impl::yield().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::await().
|
inline |
Definition at line 378 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::await().
|
inlineinherited |
Definition at line 94 of file task_impl.h.
References cotask::impl::task_impl::cancel().
Referenced by cotask::impl::task_impl::cancel(), cotask::impl::task_impl::get_status(), and cotask::task< TCO_MACRO, TTASK_MACRO >::kill().
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 531 of file task.h.
References cotask::impl::task_impl::_cas_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::_notify_finished(), copp::COPP_EC_IS_RUNNING, copp::COPP_EC_SUCCESS, cotask::EN_TS_CANCELED, cotask::EN_TS_RUNNING, cotask::impl::task_impl::get_status(), and likely.
|
inlinestatic |
create task with functor
action | |
stack_size | stack size |
private_buffer_size | buffer size to store private data |
Definition at line 155 of file task.h.
Referenced by CASE_TEST(), cotask::task< TCO_MACRO, TTASK_MACRO >::create(), cotask::task< TCO_MACRO, TTASK_MACRO >::create_with_delegate(), main(), cotask::task< TCO_MACRO, TTASK_MACRO >::next(), and cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inlinestatic |
Definition at line 161 of file task.h.
References COPP_MACRO_STD_FORWARD.
|
inlinestatic |
|
inlinestatic |
Definition at line 183 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create().
|
inlinestatic |
|
inlinestatic |
Definition at line 203 of file task.h.
References COPP_MACRO_STD_FORWARD, COPP_MACRO_STD_MOVE, and cotask::task< TCO_MACRO, TTASK_MACRO >::create().
|
inlinestatic |
create task with functor
action | |
stack_size | stack size |
private_buffer_size | buffer size to store private data |
Definition at line 73 of file task.h.
References print_color::action, COPP_MACRO_STD_FORWARD, cotask::task< TCO_MACRO, TTASK_MACRO >::create(), copp::stack_traits::default_size(), cotask::impl::task_impl::ext_coroutine_flag_t::EN_ECFT_COTASK, endif(), std::intrusive_ptr< T >::get(), cotask::get_placement_destroy(), and cotask::task< TCO_MACRO, TTASK_MACRO >::sub_buffer_offset().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::task().
|
inline |
Definition at line 451 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
|
inline |
Definition at line 452 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
|
inline |
Definition at line 454 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::id_.
|
inline |
Definition at line 589 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::add_buffer_offset(), and cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
|
inline |
Definition at line 597 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inlineinherited |
get raw action pointer
Definition at line 111 of file task_impl.h.
References cotask::impl::task_impl::_cas_status(), cotask::impl::task_impl::_get_action(), cotask::impl::task_impl::_notify_finished(), cotask::impl::task_impl::_set_action(), print_color::action, and cotask::impl::task_impl::action_.
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 457 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
|
inlineinherited |
get task status
Definition at line 64 of file task_impl.h.
References cotask::impl::task_impl::cancel(), cotask::EN_TS_CREATED, cotask::EN_TS_WAITING, cotask::impl::task_impl::get_ret_code(), cotask::impl::task_impl::is_canceled(), cotask::impl::task_impl::is_completed(), cotask::impl::task_impl::is_exiting(), cotask::impl::task_impl::is_faulted(), cotask::impl::task_impl::is_timeout(), cotask::impl::task_impl::kill(), util::lock::atomic_int_type< Ty >::load(), util::lock::memory_order_acquire, cotask::impl::task_impl::resume(), cotask::impl::task_impl::start(), cotask::impl::task_impl::status_, and cotask::impl::task_impl::yield().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::cancel(), cotask::impl::task_impl::is_canceled(), cotask::impl::task_impl::is_exiting(), cotask::impl::task_impl::is_faulted(), cotask::impl::task_impl::is_timeout(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::task< TCO_MACRO, TTASK_MACRO >::~task().
|
virtualinherited |
Definition at line 26 of file task_impl.cpp.
References cotask::EN_TS_CANCELED, and cotask::impl::task_impl::get_status().
Referenced by cotask::impl::task_impl::get_status().
|
inlinevirtual |
Reimplemented from cotask::impl::task_impl.
Definition at line 573 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::next(), and cotask::task< TCO_MACRO, TTASK_MACRO >::start().
|
inherited |
check if a cotask is exiting
Definition at line 34 of file task_impl.cpp.
References cotask::EN_TS_DONE, and cotask::impl::task_impl::get_status().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::await(), cotask::impl::task_impl::get_status(), cotask::impl::task_impl::is_completed(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
virtualinherited |
Definition at line 30 of file task_impl.cpp.
References cotask::EN_TS_KILLED, and cotask::impl::task_impl::get_status().
Referenced by cotask::impl::task_impl::get_status().
|
virtualinherited |
Definition at line 32 of file task_impl.cpp.
References cotask::EN_TS_TIMEOUT, and cotask::impl::task_impl::get_status().
Referenced by cotask::impl::task_impl::get_status().
|
inlineinherited |
Definition at line 89 of file task_impl.h.
References cotask::EN_TS_KILLED, and cotask::impl::task_impl::kill().
Referenced by cotask::impl::task_impl::kill().
|
inlineinherited |
Definition at line 95 of file task_impl.h.
References cotask::impl::task_impl::kill().
Referenced by cotask::impl::task_impl::kill().
|
inlineinherited |
Definition at line 96 of file task_impl.h.
References cotask::impl::task_impl::kill(), cotask::impl::task_impl::on_finished(), and cotask::impl::task_impl::this_task().
Referenced by cotask::impl::task_impl::get_status(), cotask::impl::task_impl::kill(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::task< TCO_MACRO, TTASK_MACRO >::~task().
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 548 of file task.h.
References cotask::impl::task_impl::_cas_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::_notify_finished(), cotask::impl::task_impl::cancel(), copp::COPP_EC_SUCCESS, cotask::EN_TS_RUNNING, cotask::impl::task_impl::finish_priv_data_, cotask::impl::task_impl::get_status(), cotask::impl::task_impl::kill(), likely, cotask::impl::task_impl::resume(), cotask::impl::task_impl::start(), and cotask::impl::task_impl::yield().
|
inline |
add next task to run when task finished
next_task | next stack |
priv_data | priv_data passed to resume or start next stack |
Definition at line 232 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), cotask::EN_TS_CREATED, cotask::EN_TS_WAITING, std::intrusive_ptr< T >::get(), cotask::task< TCO_MACRO, TTASK_MACRO >::is_completed(), cotask::impl::task_impl::is_exiting(), cotask::task< TCO_MACRO, TTASK_MACRO >::task_group::member_list_, cotask::task< TCO_MACRO, TTASK_MACRO >::next_list_, and cotask::task< TCO_MACRO, TTASK_MACRO >::next_list_lock_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::next(), and cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inline |
create next task with functor
functor | |
priv_data | priv_data passed to start functor |
stack_size | stack size |
Definition at line 279 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
inline |
Definition at line 284 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
inline |
create next task with function
func | function |
priv_data | priv_data passed to start function |
stack_size | stack size |
Definition at line 299 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
inline |
Definition at line 305 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
inline |
create next task with function
func | member function |
instance | instance |
priv_data | priv_data passed to start (instance->*func)(priv_data) |
stack_size | stack size |
Definition at line 320 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
inline |
Definition at line 326 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::create(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
virtualinherited |
Definition at line 36 of file task_impl.cpp.
Referenced by cotask::impl::task_impl::_notify_finished(), and cotask::impl::task_impl::kill().
|
inlineinherited |
Definition at line 92 of file task_impl.h.
References cotask::impl::task_impl::resume().
Referenced by cotask::impl::task_impl::get_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::impl::task_impl::resume().
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 519 of file task.h.
References cotask::impl::task_impl::start().
|
inlineinherited |
Definition at line 91 of file task_impl.h.
References cotask::impl::task_impl::start().
Referenced by cotask::impl::task_impl::get_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), cotask::task< TCO_MACRO, TTASK_MACRO >::resume(), and cotask::impl::task_impl::start().
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 465 of file task.h.
References cotask::impl::task_impl::_cas_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::_notify_finished(), copp::COPP_EC_ALREADY_FINISHED, copp::COPP_EC_IS_RUNNING, copp::COPP_EC_NOT_INITED, cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_, cotask::EN_TS_DONE, cotask::EN_TS_RUNNING, cotask::EN_TS_WAITING, cotask::impl::task_impl::finish_priv_data_, cotask::task< TCO_MACRO, TTASK_MACRO >::is_completed(), likely, and unlikely.
|
inlinestatic |
Definition at line 585 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::create_with_delegate().
|
inline |
add task to run when task finished
next_task | then stack |
priv_data | priv_data passed to resume or start the stack |
Definition at line 390 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_, cotask::task< TCO_MACRO, TTASK_MACRO >::create(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer_size(), cotask::task< TCO_MACRO, TTASK_MACRO >::next(), and cotask::task< TCO_MACRO, TTASK_MACRO >::stack_size_.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inline |
create next task with functor using the same allocator and private buffer size as this task
functor | |
priv_data | priv_data passed to start functor |
Definition at line 411 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_, cotask::task< TCO_MACRO, TTASK_MACRO >::create(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer_size(), cotask::task< TCO_MACRO, TTASK_MACRO >::stack_size_, and cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inline |
Definition at line 423 of file task.h.
References cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_, cotask::task< TCO_MACRO, TTASK_MACRO >::create(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer_size(), cotask::task< TCO_MACRO, TTASK_MACRO >::stack_size_, and cotask::task< TCO_MACRO, TTASK_MACRO >::then().
|
inlinestatic |
get current running task and convert to task object
Definition at line 436 of file task.h.
References cotask::impl::task_impl::this_task().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::await().
|
inline |
Definition at line 606 of file task.h.
References util::lock::atomic_int_type< Ty >::load(), cotask::task< TCO_MACRO, TTASK_MACRO >::ref_count_, and cotask::task< TCO_MACRO, TTASK_MACRO >::task().
|
inlineinherited |
Definition at line 93 of file task_impl.h.
References cotask::impl::task_impl::yield().
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::await(), cotask::impl::task_impl::get_status(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::impl::task_impl::yield().
|
inlinevirtual |
Implements cotask::impl::task_impl.
Definition at line 523 of file task.h.
References copp::COPP_EC_NOT_INITED, and cotask::task< TCO_MACRO, TTASK_MACRO >::coroutine_obj_.
|
friend |
|
friend |
|
private |
|
private |
Definition at line 688 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::_notify_finished(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_coroutine_context(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_private_buffer_size(), cotask::task< TCO_MACRO, TTASK_MACRO >::get_ret_code(), cotask::task< TCO_MACRO, TTASK_MACRO >::is_completed(), cotask::task< TCO_MACRO, TTASK_MACRO >::start(), cotask::task< TCO_MACRO, TTASK_MACRO >::then(), and cotask::task< TCO_MACRO, TTASK_MACRO >::yield().
|
protectedinherited |
Definition at line 125 of file task_impl.h.
Referenced by cotask::impl::task_impl::_notify_finished(), cotask::task< TCO_MACRO, TTASK_MACRO >::kill(), and cotask::task< TCO_MACRO, TTASK_MACRO >::start().
|
private |
Definition at line 686 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::get_id(), cotask::task< TCO_MACRO, TTASK_MACRO >::task(), and cotask::task< TCO_MACRO, TTASK_MACRO >::~task().
|
private |
Definition at line 689 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::active_next_tasks(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
private |
ref_count
Definition at line 696 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::active_next_tasks(), and cotask::task< TCO_MACRO, TTASK_MACRO >::next().
|
private |
Definition at line 695 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::task(), and cotask::task< TCO_MACRO, TTASK_MACRO >::use_count().
|
private |
Definition at line 687 of file task.h.
Referenced by cotask::task< TCO_MACRO, TTASK_MACRO >::then().