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,22 +126,26 @@ async fn run(
request = request_rx.recv() => { request = request_rx.recv() => {
match request { match request {
Some(request) => { Some(request) => {
let elapsed_time = stream_time + last_event_time.elapsed().as_micros() as u64; let init = if last_event_id > 0 {
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() last_event_id,
elapsed_time,
vt.size().into(),
tty_theme.clone(),
vt.dump(),
)
} else { } else {
"".to_owned() Event::Init(
last_event_id,
stream_time,
vt.size().into(),
tty_theme.clone(),
"".to_owned(),
)
}; };
let init = Event::Init(
last_event_id,
elapsed_time,
vt.size().into(),
tty_theme.clone(),
vt_seed,
);
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 });
info!("subscriber count: {}", broadcast_tx.receiver_count()); info!("subscriber count: {}", broadcast_tx.receiver_count());