weston/shared
Alexandros Frantzis 8b6daa41ab libweston: Introduce a safer wayland signal emission
Wayland signals (wl_signal) do not reliably handle changes to the
notification list during signal emission. Such scenarios occasionally
come up and can be difficult to investigate and debug.

This commit introduces the weston_signal_emit_mutable() function which can be
used in place of wl_signal_emit() and safely implements the following
behavior regarding notification list changes:

1. Listeners deleted during a signal emission and which have not already been
   notified at the time of deletion are not notified by that emission.

2. Listeners added during signal emission are ignored by that emission.

The implementation of weston_signal_emit_mutable() is copied from the
wlr_signal_emit_safe() function of the wlroots project.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
2021-12-14 17:55:06 +00:00
..
cairo-util.c clients: don't use deprecated fontconfig aliases 2021-11-18 10:57:16 +02:00
cairo-util.h xwm: Fix icon surface ownership 2018-02-09 17:01:09 +00:00
config-parser.c config-parser: use zalloc() 2020-11-27 14:44:10 +02:00
fd-util.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
file-util.c clients: Fix/resolved doxygen warnings 2019-06-25 14:05:54 +00:00
file-util.h file-util: allow specifying path separately in file_create_dated() 2018-02-09 15:16:07 +00:00
frame.c xwm: Fix icon surface ownership 2018-02-09 17:01:09 +00:00
helpers.h shared/helpers: fix ARRAY_COPY macro 2021-04-28 11:35:28 -03:00
image-loader.c image-loader: Fix undefined left shift in premultiply_data 2019-10-16 16:06:06 -04:00
image-loader.h shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
matrix.c Rename matrix.h to libweston/matrix.h 2019-04-18 12:31:46 +03:00
meson.build libweston: Introduce a safer wayland signal emission 2021-12-14 17:55:06 +00:00
option-parser.c option-parser: Make bools boolean 2019-11-28 19:24:13 +00:00
os-compatibility.c shared: fix typos 2021-02-24 10:00:32 -05:00
os-compatibility.h shared: add read-only anonymous file abstraction 2019-11-01 02:44:58 +01:00
platform.h Fix indentation all through the project 2021-07-31 15:28:20 +00:00
shell-utils.c desktop-shell, kiosk-shell: Migrate helpers to create a view to shell-utils 2021-11-02 19:32:24 +02:00
shell-utils.h desktop-shell, kiosk-shell: Migrate helpers to create a view to shell-utils 2021-11-02 19:32:24 +02:00
signal.c libweston: Introduce a safer wayland signal emission 2021-12-14 17:55:06 +00:00
signal.h libweston: Introduce a safer wayland signal emission 2021-12-14 17:55:06 +00:00
string-helpers.h shared: add str_printf() 2021-07-22 22:19:17 +00:00
timespec-util.h timespec: Don't return value from void function 2019-06-11 11:31:04 +01:00
weston-drm-fourcc.h Add weston-drm-fourcc.h 2021-02-25 14:35:03 +02:00
weston-egl-ext.h gl-renderer: query DRM device given an EGLDisplay 2021-11-25 10:47:39 -03:00
xalloc.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
xalloc.h Rename zalloc.h to libweston/zalloc.h 2019-04-18 12:31:46 +03:00