1
This commit is contained in:
parent
e1e32e2800
commit
c85563a289
@ -11,20 +11,21 @@ void CoMgr::Init()
|
||||
(
|
||||
[] (Coroutine* co)
|
||||
{
|
||||
a8::XPrintf("call 1\n", {});
|
||||
a8::XPrintf("call 1 %d\n", {a8::XGetTickCount()});
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
co->CoYield();
|
||||
a8::XPrintf("call A %d\n", {i});
|
||||
co->CoAwait(co->Sleep(1000));
|
||||
a8::XPrintf("call A %d %d\n", {i, a8::XGetTickCount()});
|
||||
}
|
||||
});
|
||||
CreateCo
|
||||
(
|
||||
[] (Coroutine* co)
|
||||
{
|
||||
a8::XPrintf("call 10\n", {});
|
||||
a8::XPrintf("call 10 %d\n", {a8::XGetTickCount()});
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
co->CoYield();
|
||||
a8::XPrintf("call B %d\n", {i});
|
||||
a8::XPrintf("call B %d %d\n", {i, a8::XGetTickCount()});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -14,6 +14,11 @@ void Awaiter::Await(std::shared_ptr<Awaiter> notifyer)
|
||||
DoAwait();
|
||||
}
|
||||
|
||||
std::shared_ptr<Awaiter> Awaiter::Sleep(int time)
|
||||
{
|
||||
return std::make_shared<TimerPromise>(time);
|
||||
}
|
||||
|
||||
void Promise::DoAwait()
|
||||
{
|
||||
|
||||
|
@ -33,6 +33,7 @@ class Awaiter : public std::enable_shared_from_this<Awaiter>
|
||||
}
|
||||
|
||||
virtual void DoResume() {};
|
||||
std::shared_ptr<Awaiter> Sleep(int time);
|
||||
|
||||
protected:
|
||||
std::list<std::weak_ptr<Awaiter>> notifyers_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user