From 863c7b6072d6cd0471e6e1e5902745eedd072a06 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 7 Apr 2024 21:55:14 +0100 Subject: eventloop: move timers to an event loop fd fixes #5481 --- src/managers/eventLoop/EventLoopManager.hpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'src/managers/eventLoop/EventLoopManager.hpp') diff --git a/src/managers/eventLoop/EventLoopManager.hpp b/src/managers/eventLoop/EventLoopManager.hpp index d55b54a9..fe864f16 100644 --- a/src/managers/eventLoop/EventLoopManager.hpp +++ b/src/managers/eventLoop/EventLoopManager.hpp @@ -10,10 +10,14 @@ class CEventLoopManager { public: + CEventLoopManager(); + void enterLoop(wl_display* display, wl_event_loop* wlEventLoop); void addTimer(std::shared_ptr timer); void removeTimer(std::shared_ptr timer); + void onTimerFire(); + // recalculates timers void nudgeTimers(); @@ -21,26 +25,12 @@ class CEventLoopManager { struct { wl_event_loop* loop = nullptr; wl_display* display = nullptr; - std::thread pollThread; } m_sWayland; struct { - std::mutex timersMutex; - std::mutex timersRqMutex; std::vector> timers; - std::thread timerThread; - bool event = false; - std::condition_variable cv; + int timerfd = -1; } m_sTimers; - - struct { - std::mutex loopMutex; - std::mutex eventRequestMutex; - bool event = false; - std::condition_variable cv; - } m_sLoopState; - - bool m_bTerminate = false; }; inline std::unique_ptr g_pEventLoopManager; \ No newline at end of file -- cgit v1.2.3