From 3184305c41cafeeae64be5de64503e6b39e97061 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Sat, 6 Jun 2026 14:42:13 +0200 Subject: [PATCH] increase disconnect timeout (#1020) --- src/device/vi.rs | 8 ++------ src/netplay.rs | 12 +++++------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/device/vi.rs b/src/device/vi.rs index e98caf5..184a909 100644 --- a/src/device/vi.rs +++ b/src/device/vi.rs @@ -164,12 +164,8 @@ pub fn vertical_interrupt_event(device: &mut device::Device) { } device.frame_counter += 1; - if let Some(netplay) = &device.netplay { - device.netplay.as_mut().unwrap().inputs = if netplay.requests.is_empty() { - netplay::process_netplay(device) - } else { - netplay::process_requests(device) - }; + if device.netplay.is_some() { + device.netplay.as_mut().unwrap().inputs = netplay::process_requests(device); } if device.netplay.is_none() && paused { diff --git a/src/netplay.rs b/src/netplay.rs index 3ec8e8b..ae7781b 100644 --- a/src/netplay.rs +++ b/src/netplay.rs @@ -212,16 +212,13 @@ pub fn process_requests( } } } else { - let netplay = device.netplay.as_mut().unwrap(); - netplay.session.poll_remote_clients(); - advance_frame(device); + // unsafe { sdl3_sys::events::SDL_PumpEvents() }; // so the screen doesn't freeze + return process_netplay(device); } } } -pub fn process_netplay( - device: &mut device::Device, -) -> Vec<(ui::input::InputData, ggrs::InputStatus)> { +fn process_netplay(device: &mut device::Device) -> Vec<(ui::input::InputData, ggrs::InputStatus)> { let netplay = device.netplay.as_mut().unwrap(); netplay.session.poll_remote_clients(); @@ -326,7 +323,8 @@ pub fn init( .with_input_delay(input_delay) .with_fps(if pal { 50 } else { 60 }) .unwrap() - .with_desync_detection_mode(ggrs::DesyncDetection::On { interval: 60 }); + .with_desync_detection_mode(ggrs::DesyncDetection::On { interval: 60 }) + .with_disconnect_timeout(std::time::Duration::from_secs(5)); #[cfg(debug_assertions)] {