aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/microbenchmarks
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2018-02-08 11:08:41 -0800
committerGravatar Vijay Pai <vpai@google.com>2018-02-08 11:08:41 -0800
commit239b7d4b0be55975e5fc0b62e28f3d3e2a54fa9b (patch)
tree30c6d791eed6e7eaa8dfefe29b8b60651e56b059 /test/cpp/microbenchmarks
parent8f4fbb1c550c99e25f42ceafec3af92b34279db5 (diff)
parent100e0a78ebc1ecfaefb57c5105506b3091d4b86c (diff)
Merge branch 'master' into gpr_review
Diffstat (limited to 'test/cpp/microbenchmarks')
-rw-r--r--test/cpp/microbenchmarks/fullstack_fixtures.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/test/cpp/microbenchmarks/fullstack_fixtures.h b/test/cpp/microbenchmarks/fullstack_fixtures.h
index d73caa01c8..fdc04e51c6 100644
--- a/test/cpp/microbenchmarks/fullstack_fixtures.h
+++ b/test/cpp/microbenchmarks/fullstack_fixtures.h
@@ -61,6 +61,15 @@ class FixtureConfiguration {
class BaseFixture : public TrackCounters {};
+// Special tag to be used in Server shutdown. This tag is *NEVER* returned when
+// Cq->Next() API is called (This is because FinalizeResult() function in this
+// class always returns 'false'). This is intentional and makes writing shutdown
+// code easier.
+class ShutdownTag : public internal::CompletionQueueTag {
+ public:
+ bool FinalizeResult(void** tag, bool* status) { return false; }
+};
+
class FullstackFixture : public BaseFixture {
public:
FullstackFixture(Service* service, const FixtureConfiguration& config,
@@ -84,7 +93,11 @@ class FullstackFixture : public BaseFixture {
}
virtual ~FullstackFixture() {
- server_->Shutdown(gpr_inf_past(GPR_CLOCK_MONOTONIC));
+ // Dummy shutdown tag (this tag is swallowed by cq->Next() and is not
+ // returned to the user) see ShutdownTag definition for more details
+ ShutdownTag shutdown_tag;
+ grpc_server_shutdown_and_notify(server_->c_server(), cq_->cq(),
+ &shutdown_tag);
cq_->Shutdown();
void* tag;
bool ok;
@@ -208,7 +221,11 @@ class EndpointPairFixture : public BaseFixture {
}
virtual ~EndpointPairFixture() {
- server_->Shutdown(gpr_inf_past(GPR_CLOCK_MONOTONIC));
+ // Dummy shutdown tag (this tag is swallowed by cq->Next() and is not
+ // returned to the user) see ShutdownTag definition for more details
+ ShutdownTag shutdown_tag;
+ grpc_server_shutdown_and_notify(server_->c_server(), cq_->cq(),
+ &shutdown_tag);
cq_->Shutdown();
void* tag;
bool ok;