backend/wayland: use a separate event queue for busy loops

This avoids processing events which we're not interested in.
Specifically, this fixes a case where output_commit() could be
indirectly called from itself either from import_dmabuf() or while
waiting for a configure event when enabling the output.
This commit is contained in:
Kirill Primak 2025-01-24 19:36:47 +03:00 committed by Isaac Freund
parent 35ff09a754
commit b13fe9b3a1
3 changed files with 38 additions and 7 deletions

View file

@ -22,6 +22,7 @@ struct wlr_wl_backend {
/* local state */
bool started;
struct wl_event_loop *event_loop;
struct wl_event_queue *busy_loop_queue;
struct wl_list outputs;
int drm_fd;
struct wl_list buffers; // wlr_wl_buffer.link