Use 0 as initial stream time for subscribers who subscribe before first stream event

This commit is contained in:
Marcin Kulik
2025-06-24 17:34:49 +02:00
parent 00b2c6131b
commit dd2cba282b

View File

@@ -126,21 +126,25 @@ async fn run(
request = request_rx.recv() => { request = request_rx.recv() => {
match request { match request {
Some(request) => { Some(request) => {
let init = if last_event_id > 0 {
let elapsed_time = stream_time + last_event_time.elapsed().as_micros() as u64; let elapsed_time = stream_time + last_event_time.elapsed().as_micros() as u64;
let vt_seed = if last_event_id > 0 { Event::Init(
vt.dump()
} else {
"".to_owned()
};
let init = Event::Init(
last_event_id, last_event_id,
elapsed_time, elapsed_time,
vt.size().into(), vt.size().into(),
tty_theme.clone(), tty_theme.clone(),
vt_seed, vt.dump(),
); )
} else {
Event::Init(
last_event_id,
stream_time,
vt.size().into(),
tty_theme.clone(),
"".to_owned(),
)
};
let events_rx = broadcast_tx.subscribe(); let events_rx = broadcast_tx.subscribe();
let _ = request.send(Subscription { init, events_rx }); let _ = request.send(Subscription { init, events_rx });