From 5644f9e7c0219027ebf8231ffbbe763d3f21b5ee Mon Sep 17 00:00:00 2001 From: Douglas Barker Date: Fri, 21 Mar 2025 14:57:48 -0600 Subject: [PATCH] main thread waits on a future for the grpc server to be ready --- exporters/otlp/test/otlp_grpc_exporter_test.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/exporters/otlp/test/otlp_grpc_exporter_test.cc b/exporters/otlp/test/otlp_grpc_exporter_test.cc index b57dc6604f..365d98cecd 100644 --- a/exporters/otlp/test/otlp_grpc_exporter_test.cc +++ b/exporters/otlp/test/otlp_grpc_exporter_test.cc @@ -37,6 +37,7 @@ # include # include +# include # if defined(_MSC_VER) # include "opentelemetry/sdk/common/env_variables.h" @@ -510,15 +511,21 @@ TEST_P(OtlpGrpcExporterRetryIntegrationTests, StatusCodes) TestTraceService service(status_codes); std::unique_ptr server; - std::thread server_thread([&server, &service]() { + std::promise server_ready; + auto server_ready_future = server_ready.get_future(); + + std::thread server_thread([&server, &service, &server_ready]() { std::string address("localhost:4317"); grpc::ServerBuilder builder; builder.RegisterService(&service); builder.AddListeningPort(address, grpc::InsecureServerCredentials()); server = builder.BuildAndStart(); + server_ready.set_value(); server->Wait(); }); + server_ready_future.wait(); + otlp::OtlpGrpcExporterOptions opts{}; if (is_retry_enabled)