8b6daa41ab
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> |
||
---|---|---|
.. | ||
cairo-util.c | ||
cairo-util.h | ||
config-parser.c | ||
fd-util.h | ||
file-util.c | ||
file-util.h | ||
frame.c | ||
helpers.h | ||
image-loader.c | ||
image-loader.h | ||
matrix.c | ||
meson.build | ||
option-parser.c | ||
os-compatibility.c | ||
os-compatibility.h | ||
platform.h | ||
shell-utils.c | ||
shell-utils.h | ||
signal.c | ||
signal.h | ||
string-helpers.h | ||
timespec-util.h | ||
weston-drm-fourcc.h | ||
weston-egl-ext.h | ||
xalloc.c | ||
xalloc.h |