Files
Waybar/include/modules
Alex 30dcd7a7ca fix(hyprland/workspaces): own debounce timer on main thread, fix UAF
The debounce timer added for flicker prevention was armed from the IPC
listener thread via Glib::signal_timeout().connect(), while its timeout
lambda and the m_updatePending flag ran on the GTK main thread — an
unsynchronized cross-thread data race on GLib timer/main-loop state.
Additionally ~Workspaces() never disconnected the timer, so a pending
timeout could fire on a freed 'this' (use-after-free).

Restore the pre-refactor threading model: onEvent now only mutates state
under m_mutex on the IPC thread and calls dp.emit() (Glib::Dispatcher is
thread-safe). The debounce timer is owned entirely by the main-thread
update() path, which arms/re-arms it on each dispatch and coalesces
bursts into a single refresh. ~Workspaces() disconnects the timer
(guarded) so none outlives the object. Debounce behavior is preserved.
2026-07-05 10:13:24 +02:00
..
2026-02-04 09:24:14 +01:00
2026-03-30 14:25:41 -07:00
2026-07-04 01:42:35 +02:00
2023-10-15 17:52:12 -03:00
2026-07-03 23:51:45 +02:00
2026-07-03 23:52:02 +02:00
2023-10-17 19:29:06 +02:00
2024-02-19 23:10:10 +01:00
2025-06-22 10:01:36 +02:00
2023-03-02 16:57:32 +03:00
2026-02-04 09:24:14 +01:00
2023-10-17 19:29:06 +02:00
2023-03-02 16:57:32 +03:00
2026-02-04 09:24:14 +01:00
2026-02-04 09:24:14 +01:00
2023-03-02 16:57:32 +03:00