alibaba / alibaba/yalantinglibs
[coro_io] dead lock when call server::stop() in server self's thread
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 327
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 2
Description
正如coro_rpc的example代码
```
#include
#include "rpc_service.h"
using namespace coro_rpc;
using namespace async_simple;
using namespace async_simple::coro;
int main() {
// init rpc server
coro_rpc_server server(/*thread=*/std::thread::hardware_concurrency(),
/*port=*/8801);
coro_rpc_server server2{/*thread=*/1, /*port=*/8802};
// regist normal function for rpc
server.register_handler();
// regist member function for rpc
HelloService hello_service;
server.register_handler<&HelloService::hello>(&hello_service);
server2.register_handler();
// async start server
auto res = server2.async_start();
assert(!res.hasResult());
// sync start server & sync await server stop
return !server.start();
}
```
启动以后程序会一直阻塞,那么如何正常关闭程序呢,如果直接停掉程序可能无法正常调用main函数里面的变量的析构函数,我尝试在一个rpc调用函数中调用server.stop()或者在set_complete_handler里面调用server.stop()都无法正常关闭,请问还有其他方法吗? coro_rpc_server will quit之后还是无法退出

Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.