对应于《GRPC-C++源码分析(三)--main线程》中1.5节
for (auto port = ports_.begin(); port != ports_.end(); port++) {
int r = server->AddListeningPort(port->addr, port->creds.get());
if (!r) {
if (added_port) server->Shutdown();
return nullptr;
}
added_port = true;
if (port->selected_port != nullptr) {
*port->selected_port = r;
}
}
可以右键鼠标--在新标签页中打开图片,会更清晰一些
下面大概说下上图的流程:
//tcp_server.cc
grpc_error* grpc_tcp_server_create(grpc_closure* shutdown_complete,
const grpc_channel_args* args,
grpc_tcp_server** server) {
return grpc_tcp_server_impl->create(shutdown_complete, args, server);
}
//又遇到了熟悉grpc_tcp_server_impl类型,如果还不熟悉的同学,可以参考图中上方区域,说明了grpc_tcp_server_impl的来源
这块的代码没有理解上的难点,基本上按照上图所示就能跟下来
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。