From 79ecffd2ebfa5e5efd0c8496a6ae90aa31964596 Mon Sep 17 00:00:00 2001 From: Nicolas James Date: Wed, 8 Apr 2026 18:33:03 +1000 Subject: Signal all semaphores on swapchain_monitor teardown --- src/strategies/low_latency2/swapchain_monitor.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strategies/low_latency2/swapchain_monitor.cc b/src/strategies/low_latency2/swapchain_monitor.cc index c2a328b..5d384f8 100644 --- a/src/strategies/low_latency2/swapchain_monitor.cc +++ b/src/strategies/low_latency2/swapchain_monitor.cc @@ -47,10 +47,10 @@ void SwapchainMonitor::do_monitor(const std::stop_token stoken) { this->pending_signals.pop_front(); // If we're stopping, signal the semaphore and don't worry about work - // actually completing. + // actually completing. But we MUST drain them, or we get a hang. if (stoken.stop_requested()) { pending_signal.wakeup_semaphore.signal(this->device); - break; + continue; } // Grab mutex protected present delay before we sleep - doesn't matter -- cgit v1.2.3