@@ -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
306306impl 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