Skip to content

Commit 21bbd6b

Browse files
committed
better error message for flush
1 parent f41d1e2 commit 21bbd6b

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

opentelemetry-sdk/src/metrics/periodic_reader.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ impl PeriodicReader {
158158
let reader = PeriodicReader {
159159
inner: Arc::new(PeriodicReaderInner {
160160
message_sender: Arc::new(message_sender),
161-
is_shutdown: AtomicBool::new(false),
161+
shutdown_invoked: AtomicBool::new(false),
162162
producer: Mutex::new(None),
163163
exporter: Arc::new(exporter),
164164
}),
@@ -300,7 +300,7 @@ struct PeriodicReaderInner {
300300
exporter: Arc<dyn PushMetricExporter>,
301301
message_sender: Arc<mpsc::Sender<Message>>,
302302
producer: Mutex<Option<Weak<dyn SdkProducer>>>,
303-
is_shutdown: AtomicBool,
303+
shutdown_invoked: AtomicBool,
304304
}
305305

306306
impl PeriodicReaderInner {
@@ -374,8 +374,13 @@ impl PeriodicReaderInner {
374374
}
375375

376376
fn force_flush(&self) -> MetricResult<()> {
377-
if self.is_shutdown.load(std::sync::atomic::Ordering::Relaxed) {
378-
return Err(MetricError::Other("reader is shut down".into()));
377+
if self
378+
.shutdown_invoked
379+
.load(std::sync::atomic::Ordering::Relaxed)
380+
{
381+
return Err(MetricError::Other(
382+
"Cannot perform flush as PeriodicReader shutdown already invoked.".into(),
383+
));
379384
}
380385

381386
// TODO: Better message for this scenario.
@@ -410,7 +415,7 @@ impl PeriodicReaderInner {
410415

411416
fn shutdown(&self) -> MetricResult<()> {
412417
if self
413-
.is_shutdown
418+
.shutdown_invoked
414419
.swap(true, std::sync::atomic::Ordering::Relaxed)
415420
{
416421
return Err(MetricError::Other(

0 commit comments

Comments
 (0)