This repository was archived by the owner on Aug 30, 2022. It is now read-only.
File tree 3 files changed +10
-0
lines changed
3 files changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -43,6 +43,10 @@ void Span::FinishWithOptions(
43
43
std::shared_ptr<const Tracer> tracer;
44
44
{
45
45
std::lock_guard<std::mutex> lock (_mutex);
46
+ if (isFinished ()) {
47
+ // Already finished, so return immediately.
48
+ return ;
49
+ }
46
50
_duration = finishSpanOptions.finish_steady_timestamp - _startTime;
47
51
tracer = _tracer;
48
52
}
Original file line number Diff line number Diff line change @@ -76,6 +76,8 @@ class Span : public opentracing::Span {
76
76
return *this ;
77
77
}
78
78
79
+ ~Span () { Finish (); }
80
+
79
81
void swap (Span& span)
80
82
{
81
83
using std::swap;
Original file line number Diff line number Diff line change @@ -78,6 +78,8 @@ TEST(Tracer, testTracer)
78
78
const SpanContext debugCtx (TraceID (),
79
79
0 ,
80
80
0 ,
81
+ static_cast <unsigned char >(
82
+ SpanContext::Flag::kSampled ) |
81
83
static_cast <unsigned char >(
82
84
SpanContext::Flag::kDebug ),
83
85
SpanContext::StrMap ({
@@ -122,6 +124,8 @@ TEST(Tracer, testTracer)
122
124
tracer->StartSpanWithOptions (
123
125
" test-span-with-debug-parent" , options).release ()));
124
126
127
+ span.reset ();
128
+
125
129
opentracing::Tracer::InitGlobal (opentracing::MakeNoopTracer ());
126
130
}
127
131
You can’t perform that action at this time.
0 commit comments