Commit 4881b69 1 parent d4b8fe5 commit 4881b69 Copy full SHA for 4881b69
File tree 1 file changed +18
-10
lines changed
opentelemetry-sdk/src/metrics
1 file changed +18
-10
lines changed Original file line number Diff line number Diff line change @@ -377,9 +377,9 @@ impl MetricReader for PeriodicReader {
377
377
378
378
drop ( inner) ; // don't hold lock when blocking on future
379
379
380
- futures_executor :: block_on ( receiver)
381
- . map_err ( |err| MetricsError :: Other ( err . to_string ( ) ) )
382
- . and_then ( |res| res )
380
+ crate :: util :: spawn_future ( receiver) ;
381
+
382
+ Ok ( ( ) )
383
383
}
384
384
385
385
fn shutdown ( & self ) -> Result < ( ) > {
@@ -395,14 +395,22 @@ impl MetricReader for PeriodicReader {
395
395
. map_err ( |e| MetricsError :: Other ( e. to_string ( ) ) ) ?;
396
396
drop ( inner) ; // don't hold lock when blocking on future
397
397
398
- let shutdown_result = futures_executor:: block_on ( receiver)
399
- . map_err ( |err| MetricsError :: Other ( err. to_string ( ) ) ) ?;
400
-
401
- // Acquire the lock again to set the shutdown flag
402
- let mut inner = self . inner . lock ( ) ?;
403
- inner. is_shutdown = true ;
398
+ let inner = self . inner . clone ( ) ;
399
+ crate :: util:: spawn_future ( async move {
400
+ match receiver
401
+ . await
402
+ . map_err ( |err| MetricsError :: Other ( err. to_string ( ) ) )
403
+ {
404
+ // Acquire the lock again to set the shutdown flag
405
+ Ok ( Ok ( ( ) ) ) => match inner. lock ( ) {
406
+ Ok ( mut inner) => inner. is_shutdown = true ,
407
+ Err ( _poisoned) => { }
408
+ } ,
409
+ Err ( err) | Ok ( Err ( err) ) => global:: handle_error ( err) ,
410
+ }
411
+ } ) ;
404
412
405
- shutdown_result
413
+ Ok ( ( ) )
406
414
}
407
415
}
408
416
You can’t perform that action at this time.
0 commit comments