|
|
|
@@ -92,6 +92,7 @@ fn event_stream_loop( |
|
|
|
clock: Arc<uhlc::HLC>, |
|
|
|
) { |
|
|
|
let mut tx = Some(tx); |
|
|
|
let mut close_tx = false; |
|
|
|
let mut pending_drop_tokens: Vec<(DropToken, flume::Receiver<()>, Instant, u64)> = Vec::new(); |
|
|
|
let mut drop_tokens = Vec::new(); |
|
|
|
|
|
|
|
@@ -135,10 +136,8 @@ fn event_stream_loop( |
|
|
|
data: Some(data), .. |
|
|
|
} => data.drop_token(), |
|
|
|
NodeEvent::AllInputsClosed => { |
|
|
|
// close the event stream |
|
|
|
tx = None; |
|
|
|
// skip this internal event |
|
|
|
continue; |
|
|
|
close_tx = true; |
|
|
|
None |
|
|
|
} |
|
|
|
_ => None, |
|
|
|
}; |
|
|
|
@@ -166,6 +165,10 @@ fn event_stream_loop( |
|
|
|
} else { |
|
|
|
tracing::warn!("dropping event because event `tx` was already closed: `{inner:?}`"); |
|
|
|
} |
|
|
|
|
|
|
|
if close_tx { |
|
|
|
tx = None; |
|
|
|
}; |
|
|
|
} |
|
|
|
}; |
|
|
|
if let Err(err) = result { |
|
|
|
|