gRPC C++ 异步客户端完成队列排空
gRPC C++ async client completion queue drain
我创建了一个用 C++ 编写的 gRPC 异步客户端,它使用完成队列向服务器发出流式请求和一元请求。
在客户端class的析构函数中调用了完成队列的Shutdown
方法,然后我想我可以调用Next
来排空队列并获取挂起的标签,而是调用 Next
阻止一切。
需要待定标签,因为它们是使用 new
创建的对象,必须删除以避免泄漏。
清空用于异步客户端的队列的正确方法是什么?
应该是 1 个标签进入完成队列,1 个标签出来,所以所有待处理的操作都将从 Next 返回它们的标签(即使 RPC 被取消)。
Next阻塞的症状可能是由于有未完成的未决事件。
您可能喜欢使用 TryCancel 快速终止通话
我创建了一个用 C++ 编写的 gRPC 异步客户端,它使用完成队列向服务器发出流式请求和一元请求。
在客户端class的析构函数中调用了完成队列的Shutdown
方法,然后我想我可以调用Next
来排空队列并获取挂起的标签,而是调用 Next
阻止一切。
需要待定标签,因为它们是使用 new
创建的对象,必须删除以避免泄漏。
清空用于异步客户端的队列的正确方法是什么?
应该是 1 个标签进入完成队列,1 个标签出来,所以所有待处理的操作都将从 Next 返回它们的标签(即使 RPC 被取消)。
Next阻塞的症状可能是由于有未完成的未决事件。
您可能喜欢使用 TryCancel 快速终止通话