From c80cd56f274114424e31e9ed6ed139f214dcd98a Mon Sep 17 00:00:00 2001 From: Luiz Sardinha Date: Fri, 27 Feb 2026 23:23:12 +0100 Subject: [PATCH] fix: properly handling infinite timeout for macOS on EventQueue --- src/lib/platform/OSXEventQueueBuffer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/platform/OSXEventQueueBuffer.cpp b/src/lib/platform/OSXEventQueueBuffer.cpp index a4157373e..9389e4ef9 100644 --- a/src/lib/platform/OSXEventQueueBuffer.cpp +++ b/src/lib/platform/OSXEventQueueBuffer.cpp @@ -31,9 +31,10 @@ void OSXEventQueueBuffer::waitForEvent(double timeout) { std::unique_lock lock(m_mutex); if (m_dataQueue.empty()) { - auto duration = std::chrono::duration(timeout); LOG_DEBUG2("waiting for event, timeout: %f seconds", timeout); - m_cond.wait_for(lock, duration, [this] { return !m_dataQueue.empty(); }); + auto end = timeout < 0 ? std::chrono::steady_clock::time_point::max() + : std::chrono::steady_clock::now() + std::chrono::duration(timeout); + m_cond.wait_until(lock, end, [this] { return !m_dataQueue.empty(); }); } else { LOG_DEBUG2("found events in the queue"); }