33
44use super :: ProfileExporter ;
55use crate :: { exporter:: File , internal:: EncodedProfile } ;
6- use anyhow:: Context ;
76use crossbeam_channel:: { Receiver , Sender } ;
87use libdd_common:: tag:: Tag ;
98use reqwest:: RequestBuilder ;
@@ -15,7 +14,7 @@ pub enum ExporterManager {
1514 Active {
1615 cancel : CancellationToken ,
1716 exporter : ProfileExporter ,
18- handle : JoinHandle < anyhow :: Result < ( ) > > ,
17+ handle : JoinHandle < ( ) > ,
1918 sender : Sender < RequestBuilder > ,
2019 receiver : Receiver < RequestBuilder > ,
2120 } ,
@@ -35,9 +34,13 @@ impl ExporterManager {
3534 let cloned_receiver: Receiver < RequestBuilder > = receiver. clone ( ) ;
3635 let cloned_cancel = cancel. clone ( ) ;
3736 let handle = std:: thread:: spawn ( move || {
38- let runtime = tokio:: runtime:: Builder :: new_current_thread ( )
37+ let Ok ( runtime) = tokio:: runtime:: Builder :: new_current_thread ( )
3938 . enable_all ( )
40- . build ( ) ?;
39+ . build ( )
40+ else {
41+ return ;
42+ } ;
43+
4144 runtime. block_on ( async {
4245 loop {
4346 let Ok ( msg) = cloned_receiver. recv ( ) else {
@@ -53,7 +56,6 @@ impl ExporterManager {
5356 // TODO: Add logging for failed uploads.
5457 }
5558 } ) ;
56- Ok ( ( ) )
5759 } ) ;
5860 Ok ( Self :: Active {
5961 cancel,
@@ -84,14 +86,10 @@ impl ExporterManager {
8486 drop ( sender) ;
8587
8688 match handle. join ( ) {
87- Ok ( Ok ( ( ) ) ) => {
89+ Ok ( ( ) ) => {
8890 * self = Self :: Suspended { exporter, inflight } ;
8991 Ok ( ( ) )
9092 }
91- Ok ( Err ( e) ) => {
92- * self = Self :: Suspended { exporter, inflight } ;
93- Err ( e) . context ( "worker thread returned error" )
94- }
9593 Err ( _) => {
9694 * self = Self :: Suspended { exporter, inflight } ;
9795 Err ( anyhow:: anyhow!( "unable to join thread" ) )
0 commit comments