File tree 4 files changed +25
-12
lines changed
4 files changed +25
-12
lines changed Original file line number Diff line number Diff line change @@ -100,23 +100,25 @@ where
100
100
let mut rows = stmt. query ( [ ] ) ?;
101
101
102
102
while let Some ( row) = rows. next ( ) ? {
103
+ if ( tx. is_closed ( ) ) {
104
+ break ;
105
+ }
103
106
let row: AuditRow = row. try_into ( ) ?;
104
107
let record: AuditRecord = row. try_into ( ) ?;
105
108
let inner_tx = tx. clone ( ) ;
106
- futures:: executor:: block_on ( async move {
107
- if let Err ( e) =
108
- inner_tx. send ( Ok ( record. event ) ) . await
109
- {
110
- tracing:: error!( error = %e) ;
111
- }
109
+ let res = futures:: executor:: block_on ( async move {
110
+ inner_tx. send ( Ok ( record. event ) ) . await
112
111
} ) ;
112
+ if let Err ( e) = res {
113
+ tracing:: error!( error = %e) ;
114
+ break ;
115
+ }
113
116
}
114
117
115
118
Ok :: < _ , Error > ( ( ) )
116
119
} )
117
120
. await
118
121
. map_err ( Error :: from) ?;
119
-
120
122
Ok :: < _ , Self :: Error > ( ( ) )
121
123
} ) ;
122
124
Original file line number Diff line number Diff line change @@ -393,14 +393,19 @@ where
393
393
} ) ?;
394
394
395
395
for row in rows {
396
+ if tx. is_closed ( ) {
397
+ break ;
398
+ }
396
399
let row = row?;
397
400
let record: EventRecord = row. try_into ( ) ?;
398
- let sender = tx. clone ( ) ;
399
- futures:: executor:: block_on ( async move {
400
- if let Err ( err) = sender. send ( Ok ( record) ) . await {
401
- tracing:: error!( error = %err) ;
402
- }
401
+ let inner_tx = tx. clone ( ) ;
402
+ let res = futures:: executor:: block_on ( async move {
403
+ inner_tx. send ( Ok ( record) ) . await
403
404
} ) ;
405
+ if let Err ( e) = res {
406
+ tracing:: error!( error = %e) ;
407
+ break ;
408
+ }
404
409
}
405
410
406
411
Ok :: < _ , Error > ( ( ) )
Original file line number Diff line number Diff line change @@ -222,6 +222,9 @@ where
222
222
let it_file = self . file . clone ( ) ;
223
223
tokio:: task:: spawn ( async move {
224
224
while let Some ( record) = it. next ( ) . await ? {
225
+ if tx. is_closed ( ) {
226
+ break ;
227
+ }
225
228
let mut inner = it_file. lock ( ) . await ;
226
229
let event = inner. read_event ( & record) . await ?;
227
230
if let Err ( e) = tx. send ( Ok ( event) ) . await {
Original file line number Diff line number Diff line change @@ -142,6 +142,9 @@ where
142
142
let file_path = self . data . clone ( ) ;
143
143
tokio:: task:: spawn ( async move {
144
144
while let Some ( record) = it. next ( ) . await ? {
145
+ if tx. is_closed ( ) {
146
+ break ;
147
+ }
145
148
let event_buffer =
146
149
read_event_buffer ( file_path. clone ( ) , & record) . await ?;
147
150
let event_record = record. into_event_record ( event_buffer) ;
You can’t perform that action at this time.
0 commit comments