Skip to content

Commit 19eabcf

Browse files
committed
MeterProvider modified to not do shutdown if user has already shut down
1 parent 161929d commit 19eabcf

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

opentelemetry-sdk/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
external sources to be sent through OpenTelemetry.
1212
[#2105](https://github.com/open-telemetry/opentelemetry-rust/pull/2105)
1313
- Feature: `SimpleSpanProcessor::new` is now public [#2119](https://github.com/open-telemetry/opentelemetry-rust/pull/2119)
14+
- `MeterProvider` modified to not invoke shutdown on `Drop`, if user has already
15+
called `shutdown()`.
16+
[#2156](https://github.com/open-telemetry/opentelemetry-rust/pull/2156)
1417

1518
## v0.25.0
1619

opentelemetry-sdk/src/metrics/meter_provider.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,12 @@ impl SdkMeterProviderInner {
130130

131131
impl Drop for SdkMeterProviderInner {
132132
fn drop(&mut self) {
133-
if let Err(err) = self.shutdown() {
134-
global::handle_error(err);
133+
// If user has already shutdown the provider manually by calling
134+
// shutdown(), then we don't need to call shutdown again.
135+
if !self.is_shutdown.load(Ordering::Relaxed) {
136+
if let Err(err) = self.shutdown() {
137+
global::handle_error(err);
138+
}
135139
}
136140
}
137141
}

0 commit comments

Comments
 (0)