yyzybb537 / libgo

Go-style concurrency in C++11
MIT License
3.2k stars 756 forks source link

windows-vs2015测试co_pool例子会崩溃 #283

Open zsxcandy opened 1 year ago

zsxcandy commented 1 year ago

void done() { printf("done.\n"); }

int calc() { return 1024; }

void callback(int val) { printf("calc result: %d\n", val); }

void main() { co::AsyncCoroutinePool * pPool = co::AsyncCoroutinePool::Create(1024);

pPool->InitCoroutinePool(1024);

pPool->Start(4, 128);

auto cbp = new co::AsyncCoroutinePool::CallbackPoint;
pPool->AddCallbackPoint(cbp); 

pPool->Post(&foo, &done);

pPool->Post<int>(&calc, &callback);

for (;;) {
    size_t trigger = cbp->Run();
    if (trigger > 0)
        break;
}

}

就在这个循环里面,感觉好像是死循环了,一直出不来,后面就崩溃了. 是不是没有消息,post之后,在Run里面Pop出来都是空的