This commit is contained in:
aozhiwei 2023-05-24 21:47:41 +08:00
parent dc6b6ac09d
commit 1632a294c9
2 changed files with 16 additions and 1 deletions

View File

@ -10,6 +10,11 @@ void Awaiter::Await(std::shared_ptr<Awaiter> parent)
} }
void Promise::Await(std::shared_ptr<Awaiter> parent)
{
}
Coroutine::Coroutine(std::function<void(Coroutine*)> cb) Coroutine::Coroutine(std::function<void(Coroutine*)> cb)
{ {
INIT_LIST_HEAD(&co_entry_); INIT_LIST_HEAD(&co_entry_);
@ -101,3 +106,8 @@ void Coroutine::CallExit(boost::coroutines2::coroutine<void>::push_type& sink)
{ {
sink_ = nullptr; sink_ = nullptr;
} }
void Coroutine::Await(std::shared_ptr<Awaiter> parent)
{
}

View File

@ -37,7 +37,6 @@ protected:
virtual void Await(std::shared_ptr<Awaiter> parent); virtual void Await(std::shared_ptr<Awaiter> parent);
private: private:
std::shared_ptr<Awaiter> parent_;
bool done_ = false; bool done_ = false;
std::shared_ptr<a8::Results> results_; std::shared_ptr<a8::Results> results_;
std::function<void()> cb_; std::function<void()> cb_;
@ -46,7 +45,12 @@ protected:
class Promise : public Awaiter class Promise : public Awaiter
{ {
protected:
virtual void Await(std::shared_ptr<Awaiter> parent) override;
private:
std::shared_ptr<Awaiter> parent_;
}; };
class Coroutine : public Awaiter class Coroutine : public Awaiter
@ -67,6 +71,7 @@ class Coroutine : public Awaiter
void Deatch(); void Deatch();
void CallEnter(boost::coroutines2::coroutine<void>::push_type& sink); void CallEnter(boost::coroutines2::coroutine<void>::push_type& sink);
void CallExit(boost::coroutines2::coroutine<void>::push_type& sink); void CallExit(boost::coroutines2::coroutine<void>::push_type& sink);
virtual void Await(std::shared_ptr<Awaiter> parent) override;
private: private:
list_head co_entry_; list_head co_entry_;