File tree Expand file tree Collapse file tree 2 files changed +30
-3
lines changed
include/opentelemetry/exporters/etw Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Original file line number Diff line number Diff line change @@ -162,7 +162,10 @@ void UpdateStatus(T &t, Properties &props)
162162
163163class Tracer : public opentelemetry ::trace::Tracer,
164164 public std::enable_shared_from_this<opentelemetry::trace::Tracer>
165+
165166{
167+ // To let test verify private state
168+ friend class ETWTracer_ConstructorInitializesToOpenState_Test ;
166169
167170 /* *
168171 * @brief Parent provider of this Tracer
@@ -182,11 +185,19 @@ class Tracer : public opentelemetry::trace::Tracer,
182185 /* *
183186 * @brief Provider Handle
184187 */
185- ETWProvider::Handle &provHandle;
188+ // change made in pr
189+ // ETWProvider::Handle &provHandle;
186190
187- opentelemetry::trace::TraceId traceId_;
191+ // opentelemetry::trace::TraceId traceId_;
192+
193+ // std::atomic<bool> isClosed_{true};
188194
189- std::atomic<bool > isClosed_{true };
195+ // Fix: Declare isClosed_ before provHandle so it initializes to true
196+ // *before* initProvHandle() runs.
197+ std::atomic<bool > isClosed_{true };
198+
199+ ETWProvider::Handle &provHandle;
200+ opentelemetry::trace::TraceId traceId_;
190201
191202 /* *
192203 * @brief ETWProvider is a singleton that aggregates all ETW writes.
Original file line number Diff line number Diff line change @@ -566,6 +566,22 @@ TEST(ETWTracer, EndWithCustomTime)
566566
567567}
568568
569+ TEST (ETWTracer, ConstructorInitializesToOpenState)
570+ {
571+ // Setup - Create a mock/real provider dependency
572+ etw::TracerProvider provider;
573+ std::string providerId = " TestProvider" ;
574+
575+ // Instantiate the Tracer
576+ // This triggers the constructor -> initProvHandle sequence
577+ opentelemetry::exporter::etw::Tracer tracer (provider, providerId);
578+
579+ // Verify the Bug Fix
580+ // Because we added the 'friend' line in the header, we can access isClosed_ directly.
581+ // It should be FALSE (Open) now. Before your fix, this was TRUE.
582+ EXPECT_FALSE (tracer.isClosed_ );
583+ }
584+
569585/* clang-format on */
570586
571587#endif
You can’t perform that action at this time.
0 commit comments