Waybar/src/modules
André Aparício a1cd0acac5 Fix random segfault on GTK icon functions
The segfaults were happening on GTK icon theme functions, which are
called via the C++ interface functions such as Gtk::IconTheme::has_icon.

There are multiple modules and threads using this functions on the default
icon theme by calling Gtk::IconTheme::get_default(), which returns the same
object for all callers, and was causing concurrent access to the same internal
data structures on the GTK lib. Even a seemingly read-only function such as
has_icon can cause writes due to the internal icon cache being updated.

To avoid this issues, a program wide global mutex must be used to ensure
a single thread is accessing the default icon theme instance.

This commit implements wrappers for the existing IconTheme function calls,
ensuring the global lock is held while calling the underling GTK functions.
2023-07-03 22:32:24 +01:00
..
cpu fix: cpu_load pushed twice to the vector 2023-01-05 01:10:04 +01:00
dwl fix: typo to avoid null pointer 2023-06-04 12:45:33 +02:00
hyprland fixes for hyprland/workspaces 2023-07-01 18:53:17 +02:00
memory Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
mpd refactor: make linter happy. 2023-03-08 14:35:07 +00:00
mpris mpris: Hide label if empty 2023-05-10 13:43:43 +02:00
river river/window: Add tooltip. 2023-06-05 18:29:19 +08:00
sni Fix random segfault on GTK icon functions 2023-07-03 22:32:24 +01:00
sway Fix random segfault on GTK icon functions 2023-07-03 22:32:24 +01:00
upower Fix random segfault on GTK icon functions 2023-07-03 22:32:24 +01:00
wlr finish 2023-06-27 00:07:40 +03:00
backlight.cpp Lift reverse-scrolling option into AModule 2023-06-12 14:08:18 +09:00
battery.cpp Fix SEGFAULT in battery module 2023-05-22 10:16:30 -04:00
bluetooth.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
cava.cpp Small performance fixies 2023-06-06 13:58:05 +03:00
clock.cpp Use local TZ, when user sets blank TZ in config 2023-06-13 23:32:28 +03:00
custom.cpp custom module: free memory returned by libc's getline 2023-03-29 21:18:13 +08:00
disk.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
gamemode.cpp Fix random segfault on GTK icon functions 2023-07-03 22:32:24 +01:00
idle_inhibitor.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
image.cpp fix: lint 2023-02-09 13:25:39 +01:00
inhibitor.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
jack.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
keyboard_state.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
network.cpp fix: typo 2023-07-01 11:12:46 +02:00
pulseaudio.cpp Lift reverse-scrolling option into AModule 2023-06-12 14:08:18 +09:00
simpleclock.cpp modules: Revert button to label 2022-11-24 13:08:16 +01:00
sndio.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
temperature.cpp support multiple items in hwmon-path of temperature module 2023-06-17 11:33:14 +08:00
user.cpp Merge branch 'master' into YearCalendar 2023-01-23 18:42:32 +03:00
wireplumber.cpp Round volume instead of truncating it 2023-06-06 11:42:31 +03:00