我试图从gRPC greeter_async_client.cc的helloworld示例中了解docs。
关于第76行:
rpc->Finish(&reply, &status, (void*)1);
api reference提到ClientAsyncStreamingInterface::Finish()
函数将在以下情况下返回:
该函数将在以下任一情况下返回:
- 已读取所有传入消息,并且服务器已返回状态。
- 服务器已返回非正常状态。
- 由于某种原因调用失败,并且磁带库生成了状态。
这是否意味着Finish()
正在阻止?如果是的话,CompletionQueue
的作用是什么。 Finish()
调用返回后,我们能否立即读取响应?
答案 0 :(得分:0)
该文档不正确且已过时。请参考最新文档。简而言之,Finish()不会阻塞,并且总是立即返回。 “此函数将返回”应替换为“标签将被返回”。