Skip to content

Commit 18f6c01

Browse files
authored
make Tracer::Clone cheaper #1092 (#1093)
1 parent 782f9db commit 18f6c01

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

opentelemetry-sdk/src/trace/provider.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,12 @@ impl opentelemetry_api::trace::TracerProvider for TracerProvider {
135135
} else {
136136
name
137137
};
138-
let instrumentation_lib =
139-
InstrumentationLibrary::new(component_name, version, schema_url, attributes);
138+
let instrumentation_lib = Arc::new(InstrumentationLibrary::new(
139+
component_name,
140+
version,
141+
schema_url,
142+
attributes,
143+
));
140144

141145
Tracer::new(instrumentation_lib, Arc::downgrade(&self.inner))
142146
}

opentelemetry-sdk/src/trace/tracer.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ use opentelemetry_api::trace::{
2222
};
2323
use opentelemetry_api::{Context, Key, KeyValue, OrderMap, Value};
2424
use std::fmt;
25-
use std::sync::Weak;
25+
use std::sync::{Arc, Weak};
2626

2727
/// `Tracer` implementation to create and manage spans
2828
#[derive(Clone)]
2929
pub struct Tracer {
30-
instrumentation_lib: InstrumentationLibrary,
30+
instrumentation_lib: Arc<InstrumentationLibrary>,
3131
provider: Weak<TracerProviderInner>,
3232
}
3333

@@ -45,7 +45,7 @@ impl fmt::Debug for Tracer {
4545
impl Tracer {
4646
/// Create a new tracer (used internally by `TracerProvider`s).
4747
pub(crate) fn new(
48-
instrumentation_lib: InstrumentationLibrary,
48+
instrumentation_lib: Arc<InstrumentationLibrary>,
4949
provider: Weak<TracerProviderInner>,
5050
) -> Self {
5151
Tracer {

0 commit comments

Comments
 (0)