浏览代码

ServerTryCancel was not actually respecting the API since it
could be an arbitrary amount of time between when the cancel is tried
and actually observable.

Vijay Pai 10 年之前
父节点
当前提交
6c016efa34
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      test/cpp/end2end/test_service_impl.cc

+ 5 - 1
test/cpp/end2end/test_service_impl.cc

@@ -326,7 +326,11 @@ void TestServiceImpl::ServerTryCancel(ServerContext* context) {
   EXPECT_FALSE(context->IsCancelled());
   context->TryCancel();
   gpr_log(GPR_INFO, "Server called TryCancel() to cancel the request");
-  EXPECT_TRUE(context->IsCancelled());
+  // Now wait until it's really canceled
+  while (!context->IsCancelled()) {
+    gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
+                                 gpr_time_from_micros(1000, GPR_TIMESPAN)));
+  }
 }
 
 }  // namespace testing