Browse Source

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 năm trước cách đây
mục cha
commit
6c016efa34
1 tập tin đã thay đổi với 5 bổ sung1 xóa
  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