[vlc-devel] [PATCH] wayland: xdg-shell: use roundtrip instead of dispatch
Rémi Denis-Courmont
remi at remlab.net
Mon Apr 6 19:10:09 CEST 2020
Le maanantaina 6. huhtikuuta 2020, 19.50.52 EEST Alexandre Janniaux a écrit :
> When using wl_display_dispatch, there is a race condition with the main
> loop, in which the condition `(!sys->wm.configured)` would have been
> checked as true, but the event dispatched from the main thread after
> that so wl_display_dispatch would block indefinitely.
>
> Said differently, wl_display_dispatch should not be called from a
> different thread than the main thread (in wayland terms).
That's a bit of code in that file that I did not write so I can believe that
it's wrong :D but...
> By using wl_display_roundtrip, we let the main thread unblock the
> vout_window_Enable and prevent this deadlock.
I don't think you can call wl_display_roundtrip outside the main thread, once
it is running.
The documentation says:
| This function uses wl_display_dispatch_queue() internally. It is not allowed
| to call this function while the thread is being prepared for reading events,
| and doing so will cause a dead lock.
--
Rémi Denis-Courmont
Ville neuve de Tapiola, République d´Uusimaa
More information about the vlc-devel
mailing list