From 6d18fcd3ab5815af5044d416f20f7b684d950e17 Mon Sep 17 00:00:00 2001 From: Dan Wittmer Date: Thu, 16 Nov 2017 16:45:23 -0800 Subject: Add ServerStartedCondition to hold the mutex, condition variable and condition. Changes allow callers to correctly handle spurious wakeups. --- test/cpp/interop/server_helper.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'test/cpp/interop/server_helper.h') diff --git a/test/cpp/interop/server_helper.h b/test/cpp/interop/server_helper.h index bdbea8f653..ab5de07c0e 100644 --- a/test/cpp/interop/server_helper.h +++ b/test/cpp/interop/server_helper.h @@ -52,6 +52,12 @@ namespace interop { extern gpr_atm g_got_sigint; +struct ServerStartedCondition { + std::mutex mutex; + std::condition_variable condition; + bool server_started = false; +}; + /// Run gRPC interop server using port FLAGS_port. /// /// \param creds The credentials associated with the server. @@ -61,11 +67,11 @@ void RunServer(std::shared_ptr creds); /// /// \param creds The credentials associated with the server. /// \param port Port to use for the server. -/// \param server_started_condition (optional) Condition variable used to notify -/// when the server has started. +/// \param server_started_condition (optional) Struct holding mutex, condition +/// variable, and condition used to notify when the server has started. void RunServer(std::shared_ptr creds, int port, - std::condition_variable *server_started_condition); + ServerStartedCondition *server_started_condition); } // namespace interop } // namespace testing -- cgit v1.2.3