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)