44 using id_type = LIBCOPP_COPP_NAMESPACE_ID::util::uint64_id_allocator::value_type;
60 EN_ECFT_COTASK = 0x0100,
61 EN_ECFT_MASK = 0xFF00,
83 return static_cast<EN_TASK_STATUS>(status_.load(LIBCOPP_COPP_NAMESPACE_ID::util::lock::memory_order_acquire));
86 LIBCOPP_COTASK_API
virtual bool is_canceled() const LIBCOPP_MACRO_NOEXCEPT;
87 LIBCOPP_COTASK_API virtual
bool is_completed() const LIBCOPP_MACRO_NOEXCEPT;
88 LIBCOPP_COTASK_API virtual
bool is_faulted() const LIBCOPP_MACRO_NOEXCEPT;
89 LIBCOPP_COTASK_API virtual
bool is_timeout() const LIBCOPP_MACRO_NOEXCEPT;
97 LIBCOPP_COTASK_API
bool is_exiting() const LIBCOPP_MACRO_NOEXCEPT;
100 LIBCOPP_COTASK_API virtual
int get_ret_code() const = 0;
104 virtual
int yield(
void **priv_data) = 0;
105 virtual
int cancel(
void *priv_data) = 0;
116 LIBCOPP_COTASK_API
virtual int on_finished();
118#if defined(LIBCOPP_MACRO_ENABLE_WIN_FIBER) && LIBCOPP_MACRO_ENABLE_WIN_FIBER
119 virtual bool is_fiber() const LIBCOPP_MACRO_NOEXCEPT = 0;
137 LIBCOPP_COTASK_API
void _set_action(action_ptr_type action);
138 LIBCOPP_COTASK_API action_ptr_type _get_action();
142#if defined(LIBCOPP_MACRO_ENABLE_STD_EXCEPTION_PTR) && LIBCOPP_MACRO_ENABLE_STD_EXCEPTION_PTR
143 LIBCOPP_COTASK_API
int _notify_finished(std::list<std::exception_ptr> &unhandled,
void *priv_data);
145 LIBCOPP_COTASK_API
int _notify_finished(
void *priv_data);
156#if LIBCOPP_MACRO_ENABLE_MULTI_THREAD
157 LIBCOPP_COPP_NAMESPACE_ID::util::lock::atomic_int_type<uint32_t> status_;
159 LIBCOPP_COPP_NAMESPACE_ID::util::lock::atomic_int_type<
160 LIBCOPP_COPP_NAMESPACE_ID::util::lock::unsafe_int_type<uint32_t> >